summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/contest.s36
-rw-r--r--asm/contest_effect.s3175
-rw-r--r--data/contest_effect.s22
-rw-r--r--data/contest_effect_function_table.inc50
-rw-r--r--data/contest_effects.inc289
-rw-r--r--data/contest_moves.inc2486
-rw-r--r--include/contest.h1
-rw-r--r--ld_script.txt4
-rw-r--r--src/contest_effect.c1080
-rw-r--r--src/data/contest_moves.h3008
-rw-r--r--src/pokemon_summary_screen.c48
11 files changed, 4133 insertions, 6066 deletions
diff --git a/asm/contest.s b/asm/contest.s
index b67450eef..b984a98b6 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -3233,7 +3233,7 @@ _080DD166:
ands r0, r2
strb r0, [r1, 0x15]
_080DD1B4:
- ldr r0, =gContestEffectFunctionTable
+ ldr r0, =gContestEffectFuncs
add r0, r9
ldr r0, [r0]
bl _call_via_r0
@@ -3506,8 +3506,8 @@ _080DD3C4:
.pool
thumb_func_end sub_80DD080
- thumb_func_start sub_80DD3D4
-sub_80DD3D4: @ 80DD3D4
+ thumb_func_start SetContestantEffectStringID
+SetContestantEffectStringID: @ 80DD3D4
lsls r0, 24
lsrs r0, 24
ldr r2, =gContestResources
@@ -3520,10 +3520,10 @@ sub_80DD3D4: @ 80DD3D4
strb r1, [r2, 0x13]
bx lr
.pool
- thumb_func_end sub_80DD3D4
+ thumb_func_end SetContestantEffectStringID
- thumb_func_start sub_80DD3F0
-sub_80DD3F0: @ 80DD3F0
+ thumb_func_start SetContestantEffectStringID2
+SetContestantEffectStringID2: @ 80DD3F0
lsls r0, 24
lsrs r0, 24
ldr r2, =gContestResources
@@ -3536,10 +3536,10 @@ sub_80DD3F0: @ 80DD3F0
strb r1, [r2, 0x14]
bx lr
.pool
- thumb_func_end sub_80DD3F0
+ thumb_func_end SetContestantEffectStringID2
- thumb_func_start sub_80DD40C
-sub_80DD40C: @ 80DD40C
+ thumb_func_start SetStartledString
+SetStartledString: @ 80DD40C
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -3550,36 +3550,36 @@ sub_80DD40C: @ 80DD40C
cmp r1, 0x3B
bls _080DD426
movs r1, 0x35
- bl sub_80DD3D4
+ bl SetContestantEffectStringID
b _080DD456
_080DD426:
cmp r1, 0x27
bls _080DD432
movs r1, 0x34
- bl sub_80DD3D4
+ bl SetContestantEffectStringID
b _080DD456
_080DD432:
cmp r1, 0x1D
bls _080DD43E
movs r1, 0x33
- bl sub_80DD3D4
+ bl SetContestantEffectStringID
b _080DD456
_080DD43E:
cmp r1, 0x13
bls _080DD44A
movs r1, 0x32
- bl sub_80DD3D4
+ bl SetContestantEffectStringID
b _080DD456
_080DD44A:
cmp r2, 0x9
bls _080DD456
adds r0, r3, 0
movs r1, 0x31
- bl sub_80DD3D4
+ bl SetContestantEffectStringID
_080DD456:
pop {r0}
bx r0
- thumb_func_end sub_80DD40C
+ thumb_func_end SetStartledString
thumb_func_start sub_80DD45C
sub_80DD45C: @ 80DD45C
@@ -3678,8 +3678,8 @@ _080DD52C:
.pool
thumb_func_end sub_80DD45C
- thumb_func_start sub_80DD560
-sub_80DD560: @ 80DD560
+ thumb_func_start MakeContestantNervous
+MakeContestantNervous: @ 80DD560
push {r4,lr}
lsls r0, 24
lsrs r0, 24
@@ -3703,7 +3703,7 @@ sub_80DD560: @ 80DD560
pop {r0}
bx r0
.pool
- thumb_func_end sub_80DD560
+ thumb_func_end MakeContestantNervous
thumb_func_start sub_80DD590
sub_80DD590: @ 80DD590
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
deleted file mode 100644
index 406de35d8..000000000
--- a/asm/contest_effect.s
+++ /dev/null
@@ -1,3175 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start AreMovesContestCombo
-@ u8 AreMovesContestCombo(u16 moveId1, u16 moveId2)
-AreMovesContestCombo: @ 80E5414
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsls r1, 16
- ldr r2, =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 _080E5470
- mov r0, sp
- ldrb r0, [r0]
- cmp r4, r0
- beq _080E545E
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r4, r0
- beq _080E545E
- mov r0, sp
- ldrb r0, [r0, 0x2]
- cmp r4, r0
- beq _080E545E
- cmp r4, r1
- bne _080E5470
-_080E545E:
- ldr r0, =gComboStarterLookupTable
- adds r0, r4, r0
- ldrb r0, [r0]
- b _080E5472
- .pool
-_080E5470:
- movs r0, 0
-_080E5472:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end AreMovesContestCombo
-
- thumb_func_start ContestEffectFunc_080E547C
-ContestEffectFunc_080E547C: @ 80E547C
- bx lr
- thumb_func_end ContestEffectFunc_080E547C
-
- thumb_func_start ContestEffectFunc_080E5480
-ContestEffectFunc_080E5480: @ 80E5480
- push {lr}
- ldr r3, =gContestResources
- ldr r1, [r3]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0
- bl sub_80DD3D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5480
-
- thumb_func_start ContestEffectFunc_080E54B0
-ContestEffectFunc_080E54B0: @ 80E54B0
- push {lr}
- ldr r3, =gContestResources
- ldr r1, [r3]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x11]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1
- bl sub_80DD3D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E54B0
-
- thumb_func_start ContestEffectFunc_080E54E0
-ContestEffectFunc_080E54E0: @ 80E54E0
- ldr r3, =gContestResources
- ldr r1, [r3]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldr r1, [r3]
- ldr r0, [r1, 0x8]
- ldrb r0, [r0, 0x11]
- ldr r2, [r1, 0x4]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x15]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x15]
- ldr r1, [r3]
- ldr r0, [r1, 0x8]
- ldrb r0, [r0, 0x11]
- ldr r2, [r1, 0x4]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0xB]
- movs r0, 0x71
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- bx lr
- .pool
- thumb_func_end ContestEffectFunc_080E54E0
-
- thumb_func_start ContestEffectFunc_080E5534
-ContestEffectFunc_080E5534: @ 80E5534
- push {lr}
- ldr r3, =gContestResources
- ldr r1, [r3]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0, 0x12]
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x2
- bl sub_80DD3D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5534
-
- thumb_func_start ContestEffectFunc_080E5560
-ContestEffectFunc_080E5560: @ 80E5560
- push {lr}
- ldr r3, =gContestResources
- ldr r1, [r3]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x3
- bl sub_80DD3D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5560
-
- thumb_func_start ContestEffectFunc_080E5590
-ContestEffectFunc_080E5590: @ 80E5590
- push {lr}
- ldr r3, =gContestResources
- ldr r1, [r3]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x14
- strb r1, [r0, 0xF]
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x4
- bl sub_80DD3D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5590
-
- thumb_func_start ContestEffectFunc_080E55BC
-ContestEffectFunc_080E55BC: @ 80E55BC
- push {lr}
- ldr r3, =gContestResources
- ldr r1, [r3]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x5
- bl sub_80DD3D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E55BC
-
- thumb_func_start ContestEffectFunc_080E55EC
-ContestEffectFunc_080E55EC: @ 80E55EC
- push {r4,r5,lr}
- movs r2, 0
- ldr r5, =gContestResources
- ldr r0, [r5]
- ldr r1, [r0, 0x8]
- ldrb r4, [r1, 0x11]
- adds r3, r1, r4
- ldrb r0, [r3]
- cmp r0, 0
- beq _080E563A
- subs r0, 0x1
- ldrb r1, [r1]
- cmp r0, r1
- beq _080E5622
- adds r3, r5, 0
-_080E560A:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080E5622
- ldr r0, [r3]
- ldr r1, [r0, 0x8]
- adds r0, r1, r4
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r2
- ldrb r1, [r1]
- cmp r0, r1
- bne _080E560A
-_080E5622:
- ldr r1, =gContestResources
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- strb r2, [r0, 0x8]
- ldr r0, [r1]
- ldr r1, [r0, 0x8]
- movs r0, 0xFF
- strb r0, [r1, 0x9]
- bl sub_80E6A2C
- lsls r0, 24
- lsrs r2, r0, 24
-_080E563A:
- cmp r2, 0
- bne _080E564C
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80DD3F0
-_080E564C:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E55EC
-
- thumb_func_start ContestEffectFunc_080E5664
-ContestEffectFunc_080E5664: @ 80E5664
- push {r4-r6,lr}
- movs r1, 0
- ldr r2, =gContestResources
- ldr r0, [r2]
- ldr r0, [r0, 0x8]
- ldrb r5, [r0, 0x11]
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E56B4
- movs r3, 0
- movs r4, 0
- adds r6, r2, 0
-_080E567E:
- ldr r0, [r6]
- ldr r2, [r0, 0x8]
- adds r0, r2, r5
- adds r1, r2, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080E5698
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r4
- strb r3, [r0]
- adds r4, 0x1
-_080E5698:
- adds r3, 0x1
- cmp r3, 0x3
- ble _080E567E
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- adds r0, 0x8
- adds r0, r4
- movs r1, 0xFF
- strb r1, [r0]
- bl sub_80E6A2C
- lsls r0, 24
- lsrs r1, r0, 24
-_080E56B4:
- cmp r1, 0
- bne _080E56C6
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80DD3F0
-_080E56C6:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5664
-
- thumb_func_start ContestEffectFunc_080E56E0
-ContestEffectFunc_080E56E0: @ 80E56E0
- 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 _080E5702
- movs r1, 0x3C
- cmp r0, 0x7
- bhi _080E5702
- movs r1, 0x28
-_080E5702:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- strh r1, [r0, 0x4]
- bl ContestEffectFunc_080E55EC
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E56E0
-
- thumb_func_start ContestEffectFunc_080E5718
-ContestEffectFunc_080E5718: @ 80E5718
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- ldr r1, =gContestResources
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- ldrb r5, [r0, 0x11]
- adds r0, r5
- ldrb r0, [r0]
- mov r8, r1
- cmp r0, 0
- beq _080E579E
- movs r4, 0
- mov r6, r8
-_080E5736:
- ldr r0, [r6]
- ldr r2, [r0, 0x8]
- adds r0, r2, r5
- adds r1, r2, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080E5798
- strb r4, [r2, 0x8]
- ldr r0, [r6]
- ldr r1, [r0, 0x8]
- movs r0, 0xFF
- strb r0, [r1, 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 _080E5782
- movs r1, 0xA
- cmp r0, 0x2
- bls _080E5782
- movs r1, 0x14
- cmp r0, 0x4
- bls _080E5782
- movs r1, 0x1E
- cmp r0, 0x6
- bls _080E5782
- movs r1, 0x3C
- cmp r0, 0x8
- bhi _080E5782
- movs r1, 0x28
-_080E5782:
- ldr r0, [r6]
- ldr r0, [r0, 0x8]
- strh r1, [r0, 0x4]
- bl sub_80E6A2C
- lsls r0, 24
- cmp r0, 0
- beq _080E5798
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080E5798:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080E5736
-_080E579E:
- mov r1, r8
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- cmp r7, 0
- bne _080E57BE
- mov r1, r8
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80DD3F0
-_080E57BE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5718
-
- thumb_func_start ContestEffectFunc_080E57CC
-ContestEffectFunc_080E57CC: @ 80E57CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r9, r0
- ldr r1, =gContestResources
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- ldrb r2, [r0, 0x11]
- mov r8, r2
- add r0, r8
- ldrb r0, [r0]
- mov r10, r1
- cmp r0, 0
- beq _080E5858
- movs r6, 0
- mov r7, r10
- movs r5, 0
-_080E57F4:
- ldr r2, [r7]
- ldr r0, [r2, 0x8]
- mov r3, r8
- adds r1, r0, r3
- adds r0, r6
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bls _080E5850
- ldr r0, [r2, 0x4]
- adds r0, r5, r0
- ldrb r1, [r0, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E5850
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80E69C8
- lsls r0, 24
- cmp r0, 0
- beq _080E5850
- ldr r0, [r7]
- ldr r2, [r0, 0x4]
- adds r2, r5, r2
- ldrb r0, [r2, 0x15]
- movs r3, 0x11
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- strb r0, [r2, 0x15]
- ldr r0, [r7]
- ldr r2, [r0, 0x4]
- adds r2, r5, r2
- ldrb r0, [r2, 0x15]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x15]
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_80DD3D4
- movs r0, 0x1
- mov r9, r0
-_080E5850:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _080E57F4
-_080E5858:
- mov r1, r10
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x7
- bl sub_80DD3D4
- mov r2, r9
- cmp r2, 0
- bne _080E587A
- mov r3, r10
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80DD3F0
-_080E587A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E57CC
-
- thumb_func_start ContestEffectFunc_080E588C
-ContestEffectFunc_080E588C: @ 80E588C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r9, r0
- ldr r1, =gContestResources
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- ldrb r7, [r0, 0x11]
- adds r0, r7
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0
- beq _080E590A
- movs r5, 0
- movs r6, 0
- mov r8, r4
-_080E58B0:
- ldr r3, [r4]
- ldr r2, [r3, 0x8]
- adds r0, r2, r7
- adds r1, r2, r5
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080E5900
- ldr r0, [r3, 0x4]
- adds r0, r6, r0
- ldrb r1, [r0, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E58D8
- movs r0, 0x32
- b _080E58DA
- .pool
-_080E58D8:
- movs r0, 0xA
-_080E58DA:
- strh r0, [r2, 0x4]
- mov r1, r8
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- strb r5, [r0, 0x8]
- ldr r0, [r1]
- ldr r1, [r0, 0x8]
- movs r0, 0xFF
- strb r0, [r1, 0x9]
- bl sub_80E6A2C
- lsls r0, 24
- cmp r0, 0
- beq _080E5900
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080E5900:
- adds r6, 0x1C
- adds r5, 0x1
- ldr r4, =gContestResources
- cmp r5, 0x3
- ble _080E58B0
-_080E590A:
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- mov r0, r9
- cmp r0, 0
- bne _080E5928
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80DD3F0
-_080E5928:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E588C
-
- thumb_func_start ContestEffectFunc_080E5938
-ContestEffectFunc_080E5938: @ 80E5938
- push {r4,lr}
- ldr r4, =gContestResources
- ldr r1, [r4]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x11]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x11]
- bl ContestEffectFunc_080E5664
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5938
-
- thumb_func_start ContestEffectFunc_080E5970
-ContestEffectFunc_080E5970: @ 80E5970
- push {r4,lr}
- ldr r4, =gContestResources
- ldr r1, [r4]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x6]
- ldr r1, =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 29
- bl sub_80E6934
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5970
-
- thumb_func_start ContestEffectFunc_080E59B0
-ContestEffectFunc_080E59B0: @ 80E59B0
- push {lr}
- movs r0, 0
- bl sub_80E6934
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E59B0
-
- thumb_func_start ContestEffectFunc_080E59D0
-ContestEffectFunc_080E59D0: @ 80E59D0
- push {lr}
- movs r0, 0x1
- bl sub_80E6934
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E59D0
-
- thumb_func_start ContestEffectFunc_080E59F0
-ContestEffectFunc_080E59F0: @ 80E59F0
- push {lr}
- movs r0, 0x2
- bl sub_80E6934
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E59F0
-
- thumb_func_start ContestEffectFunc_080E5A10
-ContestEffectFunc_080E5A10: @ 80E5A10
- push {lr}
- movs r0, 0x3
- bl sub_80E6934
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5A10
-
- thumb_func_start ContestEffectFunc_080E5A30
-ContestEffectFunc_080E5A30: @ 80E5A30
- push {lr}
- movs r0, 0x4
- bl sub_80E6934
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5A30
-
- thumb_func_start ContestEffectFunc_080E5A50
-ContestEffectFunc_080E5A50: @ 80E5A50
- push {r4-r6,lr}
- movs r4, 0
- ldr r2, =gContestResources
- ldr r0, [r2]
- ldr r0, [r0, 0x8]
- ldrb r1, [r0, 0x11]
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r2, 0
- cmp r0, 0x3
- beq _080E5AB0
- movs r5, 0
-_080E5A68:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r1, [r0, 0x8]
- ldrb r0, [r1, 0x11]
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r0, 0x1
- adds r1, r5
- ldrb r1, [r1]
- cmp r0, r1
- bne _080E5AAA
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80E69C8
- lsls r0, 24
- cmp r0, 0
- beq _080E5AA0
- adds r0, r4, 0
- bl sub_80DD560
- adds r0, r4, 0
- movs r1, 0xA
- b _080E5AA4
- .pool
-_080E5AA0:
- adds r0, r4, 0
- movs r1, 0x3C
-_080E5AA4:
- bl sub_80DD3D4
- movs r4, 0x1
-_080E5AAA:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080E5A68
-_080E5AB0:
- ldr r0, [r6]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x9
- bl sub_80DD3D4
- cmp r4, 0
- bne _080E5ACC
- ldr r0, [r6]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80DD3F0
-_080E5ACC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ContestEffectFunc_080E5A50
-
- thumb_func_start ContestEffectFunc_080E5AD4
-ContestEffectFunc_080E5AD4: @ 80E5AD4
- 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 r5, 0
- movs r4, 0
- add r2, sp, 0x10
- mov r8, r2
- add r3, sp, 0x8
- mov r10, r3
- movs r6, 0
-_080E5B00:
- ldr r0, =gContestResources
- ldr r2, [r0]
- ldr r1, [r2, 0x8]
- ldrb r0, [r1, 0x11]
- adds r0, r1, r0
- adds r1, r5
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080E5B38
- ldr r0, [r2, 0x4]
- adds r0, r6, r0
- ldrb r1, [r0, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E5B38
- lsls r0, r5, 24
- lsrs r0, 24
- bl Contest_IsMonsTurnDisabled
- lsls r0, 24
- cmp r0, 0
- bne _080E5B38
- mov r1, sp
- adds r0, r1, r4
- strb r5, [r0]
- adds r4, 0x1
-_080E5B38:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080E5B00
- cmp r4, 0x1
- bne _080E5B50
- movs r0, 0x3C
- mov r2, r8
- strh r0, [r2]
- b _080E5B7E
- .pool
-_080E5B50:
- cmp r4, 0x2
- bne _080E5B5E
- movs r0, 0x1E
- mov r3, r8
- strh r0, [r3]
- strh r0, [r3, 0x2]
- b _080E5B7E
-_080E5B5E:
- cmp r4, 0x3
- bne _080E5B6E
- movs r0, 0x14
- mov r6, r8
- strh r0, [r6]
- strh r0, [r6, 0x2]
- strh r0, [r6, 0x4]
- b _080E5B7E
-_080E5B6E:
- mov r1, r8
- movs r2, 0
- mov r0, r8
- adds r0, 0x6
-_080E5B76:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _080E5B76
-_080E5B7E:
- movs r5, 0
- ldr r7, =gContestResources
- movs r6, 0
- mov r4, r10
-_080E5B86:
- ldr r0, [r7]
- ldr r0, [r0, 0x4]
- adds r0, r6, r0
- ldrb r1, [r0, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E5BD0
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_80DE1E8
- lsls r0, 24
- cmp r0, 0
- beq _080E5BD0
- ldr r0, [r7]
- ldr r0, [r0, 0x4]
- adds r0, r6, r0
- ldrh r0, [r0, 0x8]
- lsls r0, 3
- ldr r1, =gContestMoves
- adds r0, r1
- ldrb r0, [r0, 0x2]
- ldr r2, =gComboStarterLookupTable
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- b _080E5BD2
- .pool
-_080E5BD0:
- movs r0, 0
-_080E5BD2:
- strh r0, [r4]
- ldr r0, [r7]
- ldr r0, [r0, 0x4]
- adds r0, r6, r0
- 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 r6, 0x1C
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _080E5B86
- mov r3, r8
- movs r6, 0
- ldrsh r0, [r3, r6]
- cmp r0, 0
- beq _080E5CA0
- movs r5, 0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080E5CA0
- mov r4, sp
-_080E5C16:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r5, 1
- add r1, r8
- movs r3, 0
- ldrsh r2, [r1, r3]
- ldrb r3, [r4]
- lsls r1, r3, 1
- add r1, r10
- movs r6, 0
- ldrsh r1, [r1, r6]
- adds r2, r1
- cmp r0, r2
- bge _080E5C66
- adds r0, r3, 0
- bl sub_80E69C8
- lsls r0, 24
- cmp r0, 0
- beq _080E5C70
- ldrb r0, [r4]
- bl sub_80DD560
- ldrb r0, [r4]
- movs r1, 0xA
- bl sub_80DD3D4
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- b _080E5C6A
-_080E5C66:
- movs r0, 0x1
- str r0, [sp, 0x18]
-_080E5C6A:
- ldr r1, [sp, 0x18]
- cmp r1, 0
- beq _080E5C86
-_080E5C70:
- movs r2, 0
- str r2, [sp, 0x18]
- ldrb r0, [r4]
- movs r1, 0x3C
- bl sub_80DD3D4
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080E5C86:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- adds r0, 0xD
- ldrb r3, [r4]
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- adds r4, 0x1
- adds r5, 0x1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080E5C16
-_080E5CA0:
- ldr r6, =gContestResources
- ldr r0, [r6]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0xB
- bl sub_80DD3D4
- mov r0, r9
- cmp r0, 0
- bne _080E5CC0
- ldr r0, [r6]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80DD3F0
-_080E5CC0:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5AD4
-
- thumb_func_start ContestEffectFunc_080E5CD4
-ContestEffectFunc_080E5CD4: @ 80E5CD4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- movs r6, 0
- ldr r7, =gContestResources
- movs r5, 0
-_080E5CE4:
- ldr r2, [r7]
- ldr r0, [r2, 0x8]
- ldrb r1, [r0, 0x11]
- adds r1, r0, r1
- adds r0, r6
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bls _080E5D46
- ldr r0, [r2, 0x4]
- adds r0, r5, r0
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080E5D46
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80E69C8
- lsls r0, 24
- cmp r0, 0
- beq _080E5D46
- ldr r0, [r7]
- ldr r0, [r0, 0x4]
- adds r0, r5, r0
- movs r1, 0
- strb r1, [r0, 0xD]
- ldr r0, [r7]
- ldr r2, [r0, 0x4]
- adds r2, r5, r2
- ldrb r1, [r2, 0x10]
- movs r3, 0x31
- negs r3, r3
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r2, 0x10]
- adds r0, r4, 0
- movs r1, 0xD
- bl sub_80DD3D4
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080E5D46:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _080E5CE4
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0xC
- bl sub_80DD3D4
- mov r0, r8
- cmp r0, 0
- bne _080E5D6E
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x39
- bl sub_80DD3F0
-_080E5D6E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5CD4
-
- thumb_func_start ContestEffectFunc_080E5D7C
-ContestEffectFunc_080E5D7C: @ 80E5D7C
- push {r4-r7,lr}
- movs r7, 0
- movs r4, 0
- ldr r5, =gContestResources
- movs r6, 0
-_080E5D86:
- ldr r3, [r5]
- ldr r2, [r3, 0x8]
- ldrb r0, [r2, 0x11]
- adds r0, r2, r0
- adds r1, r2, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080E5DD2
- ldr r0, [r3, 0x4]
- adds r0, r6, r0
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080E5DB0
- movs r0, 0x28
- b _080E5DB2
- .pool
-_080E5DB0:
- movs r0, 0xA
-_080E5DB2:
- strh r0, [r2, 0x4]
- ldr r0, [r5]
- ldr r0, [r0, 0x8]
- strb r4, [r0, 0x8]
- ldr r0, [r5]
- ldr r1, [r0, 0x8]
- movs r0, 0xFF
- strb r0, [r1, 0x9]
- bl sub_80E6A2C
- lsls r0, 24
- cmp r0, 0
- beq _080E5DD2
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080E5DD2:
- adds r6, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _080E5D86
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0xE
- bl sub_80DD3D4
- cmp r7, 0
- bne _080E5DF8
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x39
- bl sub_80DD3F0
-_080E5DF8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5D7C
-
- thumb_func_start ContestEffectFunc_080E5E04
-ContestEffectFunc_080E5E04: @ 80E5E04
- push {r4,lr}
- ldr r1, =gUnknown_02039F26
- ldr r0, =gContestResources
- ldr r4, [r0]
- ldr r0, [r4, 0x8]
- ldrb r2, [r0, 0x11]
- adds r1, r2, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080E5E46
- ldr r0, [r4, 0x4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x6]
- ldr r3, =gContestEffects
- ldr r2, =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]
- ldr r0, [r4, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0xF
- bl sub_80DD3D4
-_080E5E46:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5E04
-
- thumb_func_start ContestEffectFunc_080E5E5C
-ContestEffectFunc_080E5E5C: @ 80E5E5C
- push {r4,lr}
- ldr r1, =gUnknown_02039F26
- ldr r0, =gContestResources
- ldr r4, [r0]
- ldr r0, [r4, 0x8]
- ldrb r2, [r0, 0x11]
- adds r1, r2, r1
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _080E5E9E
- ldr r0, [r4, 0x4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x6]
- ldr r3, =gContestEffects
- ldr r2, =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]
- ldr r0, [r4, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x10
- bl sub_80DD3D4
-_080E5E9E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5E5C
-
- thumb_func_start ContestEffectFunc_080E5EB4
-ContestEffectFunc_080E5EB4: @ 80E5EB4
- push {r4-r7,lr}
- movs r1, 0
- movs r5, 0
- ldr r0, =gContestResources
- ldr r4, [r0]
- ldr r2, [r4, 0x8]
- ldrb r0, [r2, 0x11]
- adds r0, r2, r0
- ldrb r6, [r0]
- movs r3, 0
-_080E5EC8:
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r6, r0
- bls _080E5EDA
- ldr r0, [r4, 0x4]
- adds r0, r3, r0
- movs r7, 0x2
- ldrsh r0, [r0, r7]
- adds r5, r0
-_080E5EDA:
- adds r3, 0x1C
- adds r1, 0x1
- cmp r1, 0x3
- ble _080E5EC8
- cmp r5, 0
- bge _080E5EE8
- movs r5, 0
-_080E5EE8:
- ldr r0, =gContestResources
- ldr r3, [r0]
- ldr r0, [r3, 0x8]
- ldrb r2, [r0, 0x11]
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E5EFC
- cmp r5, 0
- bne _080E5F0C
-_080E5EFC:
- adds r0, r2, 0
- movs r1, 0x12
- bl sub_80DD3D4
- b _080E5F2C
- .pool
-_080E5F0C:
- ldr r0, [r3, 0x4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldr r0, [r3, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x11
- bl sub_80DD3D4
-_080E5F2C:
- ldr r4, =gContestResources
- ldr r1, [r4]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- movs r7, 0x2
- ldrsh r0, [r0, r7]
- bl sub_80E6B70
- ldr r2, [r4]
- ldr r1, [r2, 0x8]
- ldrb r3, [r1, 0x11]
- ldr r2, [r2, 0x4]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r2
- strh r0, [r1, 0x2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E5EB4
-
- thumb_func_start ContestEffectFunc_080E5F64
-ContestEffectFunc_080E5F64: @ 80E5F64
- push {r4-r7,lr}
- movs r6, 0
- ldr r0, =gContestResources
- ldr r4, [r0]
- ldr r2, [r4, 0x8]
- ldrb r1, [r2, 0x11]
- adds r3, r2, r1
- ldrb r1, [r3]
- adds r7, r0, 0
- cmp r1, 0
- beq _080E5FB2
- movs r1, 0
- adds r5, r4, 0
- adds r4, r2, 0
- ldrb r0, [r3]
- subs r3, r0, 0x1
- movs r2, 0
-_080E5F86:
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r3, r0
- bne _080E5F94
- ldr r0, [r5, 0x4]
- adds r0, r2, r0
- ldrh r6, [r0, 0x2]
-_080E5F94:
- adds r2, 0x1C
- adds r1, 0x1
- cmp r1, 0x3
- ble _080E5F86
- ldr r3, [r7]
- ldr r0, [r3, 0x8]
- ldrb r2, [r0, 0x11]
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E5FB2
- lsls r0, r6, 16
- asrs r4, r0, 16
- cmp r4, 0
- bgt _080E5FC4
-_080E5FB2:
- ldr r0, [r7]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x14
- bl sub_80DD3D4
- b _080E5FDE
- .pool
-_080E5FC4:
- ldr r1, [r3, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x2]
- adds r1, r4, r1
- strh r1, [r0, 0x2]
- ldr r0, [r3, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x13
- bl sub_80DD3D4
-_080E5FDE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffectFunc_080E5F64
-
- thumb_func_start ContestEffectFunc_080E5FE4
-ContestEffectFunc_080E5FE4: @ 80E5FE4
- push {r4,r5,lr}
- ldr r1, =gContestResources
- ldr r3, [r1]
- ldr r0, [r3, 0x8]
- ldrb r2, [r0, 0x11]
- adds r0, r2
- ldrb r4, [r0]
- adds r5, r1, 0
- cmp r4, 0
- bne _080E600C
- ldr r0, [r3, 0x4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- movs r0, 0xA
- b _080E601C
- .pool
-_080E600C:
- ldr r0, [r3, 0x4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 2
-_080E601C:
- strh r0, [r1, 0x2]
- cmp r4, 0
- bne _080E6030
- ldr r0, [r5]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x15
- bl sub_80DD3D4
- b _080E6060
-_080E6030:
- cmp r4, 0x1
- bne _080E6042
- ldr r0, [r5]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x16
- bl sub_80DD3D4
- b _080E6060
-_080E6042:
- cmp r4, 0x2
- bne _080E6054
- ldr r0, [r5]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x17
- bl sub_80DD3D4
- b _080E6060
-_080E6054:
- ldr r0, [r5]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x18
- bl sub_80DD3D4
-_080E6060:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestEffectFunc_080E5FE4
-
- thumb_func_start ContestEffectFunc_080E6068
-ContestEffectFunc_080E6068: @ 80E6068
- 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 _080E6098
- movs r4, 0xA
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1A
- bl sub_80DD3D4
- b _080E60FC
- .pool
-_080E6098:
- cmp r0, 0x5
- bhi _080E60B4
- movs r4, 0x14
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1B
- bl sub_80DD3D4
- b _080E60FC
- .pool
-_080E60B4:
- cmp r0, 0x7
- bhi _080E60D0
- movs r4, 0x28
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1C
- bl sub_80DD3D4
- b _080E60FC
- .pool
-_080E60D0:
- cmp r1, 0x8
- bhi _080E60EC
- movs r4, 0x3C
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1D
- bl sub_80DD3D4
- b _080E60FC
- .pool
-_080E60EC:
- movs r4, 0x50
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1E
- bl sub_80DD3D4
-_080E60FC:
- ldr r0, =gContestResources
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x2]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E6068
-
- thumb_func_start ContestEffectFunc_080E611C
-ContestEffectFunc_080E611C: @ 80E611C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, =gContestResources
- ldr r0, [r2]
- ldr r3, [r0, 0x8]
- ldrb r0, [r3, 0x11]
- adds r0, r3, r0
- movs r1, 0
- ldrsb r1, [r0, r1]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r2
- cmp r1, 0
- beq _080E61F8
- mov r7, r8
- ldrb r6, [r3]
-_080E6140:
- movs r2, 0
- lsls r0, r4, 24
- asrs r1, r0, 24
- adds r5, r0, 0
- cmp r6, r1
- beq _080E616A
- ldr r4, =gContestResources
-_080E614E:
- lsls r0, r2, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r2, r0, 24
- asrs r3, r0, 24
- cmp r3, 0x3
- bgt _080E616A
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _080E614E
-_080E616A:
- ldr r0, [r7]
- lsls r3, r2, 24
- asrs r1, r3, 24
- ldr r2, [r0, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r2, r0, r2
- ldrb r1, [r2, 0xB]
- movs r0, 0x80
- ands r0, r1
- mov r12, r3
- cmp r0, 0
- bne _080E6190
- ldrb r1, [r2, 0xC]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080E61A4
-_080E6190:
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r5, r1
- lsrs r4, r0, 24
- cmp r0, 0
- blt _080E61F8
- b _080E6140
- .pool
-_080E61A4:
- mov r2, r8
- ldr r6, [r2]
- ldr r0, [r6, 0x8]
- ldrb r1, [r0, 0x11]
- ldr r4, [r6, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r5, r0, r4
- ldrh r0, [r5, 0x6]
- ldr r3, =gContestMoves
- lsls r0, 3
- adds r7, r0, r3
- ldrb r2, [r7, 0x1]
- lsls r2, 29
- mov r0, r12
- asrs r1, r0, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x6]
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r2, r0
- bne _080E61F8
- ldr r1, =gContestEffects
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r5, 0x2]
- ldr r0, [r6, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1F
- bl sub_80DD3D4
-_080E61F8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E611C
-
- thumb_func_start ContestEffectFunc_080E620C
-ContestEffectFunc_080E620C: @ 80E620C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, =gContestResources
- ldr r3, [r0]
- ldr r1, [r3, 0x8]
- ldrb r2, [r1, 0x11]
- adds r1, r2
- ldrb r1, [r1]
- mov r9, r0
- cmp r1, 0
- beq _080E62AC
- ldr r1, [r3, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x6]
- mov r8, r0
- movs r6, 0
- ldr r0, =gContestMoves
- mov r12, r0
- movs r7, 0
-_080E623C:
- mov r1, r9
- ldr r4, [r1]
- ldr r0, [r4, 0x8]
- ldrb r2, [r0, 0x11]
- adds r1, r0, r2
- ldrb r1, [r1]
- subs r1, 0x1
- adds r0, r6
- ldrb r0, [r0]
- cmp r1, r0
- bne _080E62A4
- mov r1, r8
- lsls r0, r1, 3
- mov r1, r12
- adds r5, r0, r1
- ldrb r1, [r5, 0x1]
- lsls r1, 29
- ldr r3, [r4, 0x4]
- adds r0, r7, r3
- ldrh r0, [r0, 0x6]
- lsls r0, 3
- add r0, r12
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r1, r0
- beq _080E62A4
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r3
- ldr r2, =gContestEffects
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldr r0, [r4, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x20
- bl sub_80DD3D4
- b _080E62AC
- .pool
-_080E62A4:
- adds r7, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _080E623C
-_080E62AC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffectFunc_080E620C
-
- thumb_func_start ContestEffectFunc_080E62B8
-ContestEffectFunc_080E62B8: @ 80E62B8
- push {r4-r7,lr}
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r1, [r0, 0x11]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E632E
- movs r5, 0
- movs r6, 0
-_080E62CE:
- ldr r0, =gContestResources
- ldr r4, [r0]
- ldr r1, [r4, 0x8]
- ldrb r2, [r1, 0x11]
- adds r0, r1, r2
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r5
- ldrb r1, [r1]
- cmp r0, r1
- bne _080E6326
- ldr r1, [r4, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r3, r0, r1
- adds r1, r6, r1
- movs r0, 0x2
- ldrsh r2, [r3, r0]
- movs r7, 0x2
- ldrsh r0, [r1, r7]
- cmp r2, r0
- ble _080E6314
- adds r0, r2, 0
- lsls r0, 1
- strh r0, [r3, 0x2]
- ldr r0, [r4, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x21
- bl sub_80DD3D4
- b _080E6326
- .pool
-_080E6314:
- cmp r2, r0
- bge _080E6326
- movs r0, 0
- strh r0, [r3, 0x2]
- ldr r0, [r4, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x22
- bl sub_80DD3D4
-_080E6326:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080E62CE
-_080E632E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffectFunc_080E62B8
-
- thumb_func_start ContestEffectFunc_080E6334
-ContestEffectFunc_080E6334: @ 80E6334
- push {r4,lr}
- ldr r4, =gContestResources
- ldr r1, [r4]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r3, [r1, 0xD]
- movs r0, 0xD
- ldrsb r0, [r1, r0]
- cmp r0, 0x1D
- bgt _080E6388
- adds r0, r3, 0
- adds r0, 0xA
- strb r0, [r1, 0xD]
- ldr r1, [r4]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x10]
- movs r1, 0x31
- negs r1, r1
- ands r1, r2
- movs r2, 0x10
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x23
- bl sub_80DD3D4
- b _080E6390
- .pool
-_080E6388:
- adds r0, r2, 0
- movs r1, 0x3A
- bl sub_80DD3D4
-_080E6390:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestEffectFunc_080E6334
-
- thumb_func_start ContestEffectFunc_080E6398
-ContestEffectFunc_080E6398: @ 80E6398
- push {lr}
- ldr r3, =gContestResources
- ldr r1, [r3]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x11]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldr r1, [r3]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E63DC
- adds r0, r2, 0
- movs r1, 0x24
- bl sub_80DD3D4
- b _080E63E4
- .pool
-_080E63DC:
- adds r0, r2, 0
- movs r1, 0x3B
- bl sub_80DD3D4
-_080E63E4:
- pop {r0}
- bx r0
- thumb_func_end ContestEffectFunc_080E6398
-
- thumb_func_start ContestEffectFunc_080E63E8
-ContestEffectFunc_080E63E8: @ 80E63E8
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, =gContestResources
- ldr r2, [r0]
- ldr r1, [r2]
- ldrb r1, [r1, 0x1]
- mov r12, r0
- cmp r1, 0x4
- bne _080E63FC
- b _080E6518
-_080E63FC:
- movs r6, 0
- adds r4, r2, 0
-_080E6400:
- lsls r1, r6, 24
- asrs r1, 24
- mov r0, sp
- adds r3, r0, r1
- ldr r2, [r4, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x19]
- strb r0, [r3]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080E6400
- mov r1, r12
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- movs r6, 0
- mov r3, r12
- ldr r7, [r3]
-_080E6438:
- movs r5, 0
-_080E643A:
- lsls r0, r5, 24
- asrs r2, r0, 24
- ldr r0, [r7, 0x8]
- ldrb r0, [r0, 0x11]
- cmp r2, r0
- beq _080E6474
- lsls r0, r6, 24
- asrs r3, r0, 24
- mov r0, sp
- adds r4, r0, r2
- ldrb r1, [r4]
- cmp r3, r1
- bne _080E6474
- ldr r0, [r7, 0x4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- lsls r0, r3, 24
- lsrs r0, 24
- ldrb r1, [r1, 0x19]
- cmp r0, r1
- bne _080E6474
- adds r0, r3, 0x1
- strb r0, [r4]
- b _080E6484
- .pool
-_080E6474:
- lsls r0, r5, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080E643A
-_080E6484:
- cmp r5, 0x4
- beq _080E6498
- lsls r0, r6, 24
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r6, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080E6438
-_080E6498:
- mov r4, r12
- ldr r1, [r4]
- ldr r0, [r1, 0x8]
- ldrb r0, [r0, 0x11]
- mov r3, sp
- adds r2, r3, r0
- movs r0, 0
- strb r0, [r2]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x10]
- movs r1, 0x3F
- ands r1, r2
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0, 0x10]
- movs r6, 0
- mov r3, r12
-_080E64C6:
- ldr r0, [r3]
- lsls r1, r6, 24
- asrs r1, 24
- ldr r2, [r0, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- 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 _080E64C6
- mov r0, r12
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x11]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x11]
- mov r1, r12
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x25
- bl sub_80DD3D4
-_080E6518:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffectFunc_080E63E8
-
- thumb_func_start ContestEffectFunc_080E6520
-ContestEffectFunc_080E6520: @ 80E6520
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r0, =gContestResources
- ldr r2, [r0]
- ldr r1, [r2]
- ldrb r1, [r1, 0x1]
- mov r12, r0
- cmp r1, 0x4
- bne _080E6538
- b _080E6658
-_080E6538:
- movs r6, 0
- adds r4, r2, 0
-_080E653C:
- lsls r1, r6, 24
- asrs r1, 24
- mov r0, sp
- adds r3, r0, r1
- ldr r2, [r4, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x19]
- strb r0, [r3]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080E653C
- mov r1, r12
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- movs r6, 0x3
- mov r3, r12
- ldr r7, [r3]
- movs r4, 0x1
- negs r4, r4
- mov r8, r4
-_080E657A:
- movs r5, 0
-_080E657C:
- lsls r0, r5, 24
- asrs r2, r0, 24
- ldr r0, [r7, 0x8]
- ldrb r0, [r0, 0x11]
- cmp r2, r0
- beq _080E65B4
- lsls r0, r6, 24
- asrs r3, r0, 24
- mov r0, sp
- adds r4, r0, r2
- ldrb r1, [r4]
- cmp r3, r1
- bne _080E65B4
- ldr r0, [r7, 0x4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- lsls r0, r3, 24
- lsrs r0, 24
- ldrb r1, [r1, 0x19]
- cmp r0, r1
- bne _080E65B4
- subs r0, r3, 0x1
- strb r0, [r4]
- b _080E65C4
- .pool
-_080E65B4:
- lsls r0, r5, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080E657C
-_080E65C4:
- cmp r5, 0x4
- beq _080E65D8
- lsls r0, r6, 24
- movs r3, 0xFF
- lsls r3, 24
- adds r0, r3
- lsrs r6, r0, 24
- asrs r0, 24
- cmp r0, r8
- bgt _080E657A
-_080E65D8:
- mov r4, r12
- ldr r1, [r4]
- ldr r0, [r1, 0x8]
- ldrb r0, [r0, 0x11]
- mov r3, sp
- adds r2, r3, r0
- movs r0, 0x3
- strb r0, [r2]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x10]
- movs r1, 0x3F
- ands r1, r2
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0, 0x10]
- movs r6, 0
- mov r3, r12
-_080E6606:
- ldr r0, [r3]
- lsls r1, r6, 24
- asrs r1, 24
- ldr r2, [r0, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- 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 _080E6606
- mov r0, r12
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x11]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x11]
- mov r1, r12
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x26
- bl sub_80DD3D4
-_080E6658:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffectFunc_080E6520
-
- thumb_func_start ContestEffectFunc_080E6664
-ContestEffectFunc_080E6664: @ 80E6664
- bx lr
- thumb_func_end ContestEffectFunc_080E6664
-
- thumb_func_start ContestEffectFunc_080E6668
-ContestEffectFunc_080E6668: @ 80E6668
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, =gContestResources
- ldr r1, [r0]
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x4
- beq _080E676C
- movs r6, 0
- add r5, sp, 0x4
- adds r4, r1, 0
- adds r7, r5, 0
-_080E6680:
- lsls r1, r6, 24
- asrs r1, 24
- mov r0, sp
- adds r3, r0, r1
- ldr r2, [r4, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x19]
- strb r0, [r3]
- adds r0, r7, r1
- strb r6, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080E6680
- movs r6, 0
- adds r7, r5, 0
-_080E66AA:
- 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
-_080E66C4:
- lsls r0, r1, 24
- asrs r2, r0, 24
- adds r3, r7, r2
- ldrb r1, [r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- beq _080E66EE
- cmp r4, 0
- bne _080E66E8
- mov r1, sp
- adds r0, r1, r2
- strb r6, [r0]
- movs r0, 0xFF
- strb r0, [r3]
- b _080E66FC
- .pool
-_080E66E8:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080E66EE:
- movs r1, 0x80
- lsls r1, 17
- adds r0, r5, r1
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080E66C4
-_080E66FC:
- lsls r0, r6, 24
- movs r6, 0x80
- lsls r6, 17
- adds r0, r6
- lsrs r6, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080E66AA
- movs r6, 0
- ldr r5, =gContestResources
- adds r4, r5, 0
-_080E6712:
- ldr r0, [r4]
- lsls r3, r6, 24
- asrs r3, 24
- ldr r1, [r0, 0x4]
- lsls r2, r3, 3
- subs r2, r3
- lsls r2, 2
- adds r1, r2, r1
- mov r6, sp
- adds r0, r6, r3
- ldrb r0, [r0]
- strb r0, [r1, 0x19]
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- adds r2, r0
- ldrb r1, [r2, 0x10]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x10]
- adds r3, 0x1
- lsls r3, 24
- lsrs r6, r3, 24
- asrs r3, 24
- cmp r3, 0x3
- ble _080E6712
- ldr r1, [r5]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x11]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldr r0, [r5]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x27
- bl sub_80DD3D4
-_080E676C:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E6668
-
- thumb_func_start ContestEffectFunc_080E6778
-ContestEffectFunc_080E6778: @ 80E6778
- push {lr}
- ldr r3, =gContestMoves
- ldr r0, =gContestResources
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r2, r0, r1
- ldrh r0, [r2, 0x6]
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- ldr r1, =gSpecialVar_ContestCategory
- lsrs r0, 29
- ldrh r1, [r1]
- cmp r0, r1
- beq _080E67AA
- ldrb r0, [r2, 0x11]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0x11]
-_080E67AA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E6778
-
- thumb_func_start ContestEffectFunc_080E67BC
-ContestEffectFunc_080E67BC: @ 80E67BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- movs r4, 0
- ldr r5, =gContestResources
- movs r6, 0
-_080E67CC:
- ldr r3, [r5]
- ldr r2, [r3, 0x8]
- ldrb r0, [r2, 0x11]
- adds r0, r2, r0
- adds r1, r2, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080E682E
- ldr r0, [r3, 0x4]
- adds r1, r6, r0
- movs r7, 0x2
- ldrsh r0, [r1, r7]
- cmp r0, 0
- ble _080E6808
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r2, 0x4]
- ldr r0, [r3, 0x8]
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- bl sub_80E6BB4
- ldr r1, [r5]
- ldr r1, [r1, 0x8]
- strh r0, [r1, 0x4]
- b _080E680C
- .pool
-_080E6808:
- movs r0, 0xA
- strh r0, [r2, 0x4]
-_080E680C:
- ldr r0, [r5]
- ldr r0, [r0, 0x8]
- strb r4, [r0, 0x8]
- ldr r0, [r5]
- ldr r1, [r0, 0x8]
- movs r0, 0xFF
- strb r0, [r1, 0x9]
- bl sub_80E6A2C
- lsls r0, 24
- cmp r0, 0
- beq _080E682E
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080E682E:
- adds r6, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _080E67CC
- mov r7, r8
- cmp r7, 0
- bne _080E684A
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80DD3F0
-_080E684A:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80DD3D4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E67BC
-
- thumb_func_start ContestEffectFunc_080E6868
-ContestEffectFunc_080E6868: @ 80E6868
- push {r4,lr}
- ldr r0, =gContestResources
- ldr r1, [r0]
- ldr r0, [r1]
- ldrb r0, [r0, 0x13]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080E688C
- movs r4, 0xA
- ldr r0, [r1, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1A
- bl sub_80DD3D4
- b _080E68CE
- .pool
-_080E688C:
- cmp r0, 0x1
- bne _080E689E
- movs r4, 0x14
- ldr r0, [r1, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1B
- bl sub_80DD3D4
- b _080E68CE
-_080E689E:
- cmp r0, 0x2
- bne _080E68B0
- movs r4, 0x1E
- ldr r0, [r1, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1C
- bl sub_80DD3D4
- b _080E68CE
-_080E68B0:
- cmp r0, 0x3
- bne _080E68C2
- movs r4, 0x32
- ldr r0, [r1, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1D
- bl sub_80DD3D4
- b _080E68CE
-_080E68C2:
- movs r4, 0x3C
- ldr r0, [r1, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x1E
- bl sub_80DD3D4
-_080E68CE:
- ldr r0, =gContestResources
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x2]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E6868
-
- thumb_func_start ContestEffectFunc_080E68EC
-ContestEffectFunc_080E68EC: @ 80E68EC
- push {r4,lr}
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r2, [r0, 0x10]
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E692A
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r0, [r4]
- ldr r3, [r0, 0x10]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x7
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3, 0x1]
- movs r0, 0xF
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x1]
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x3D
- bl sub_80DD3D4
-_080E692A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContestEffectFunc_080E68EC
-
- thumb_func_start sub_80E6934
-sub_80E6934: @ 80E6934
- 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 r4, 0
- ldr r6, =gContestResources
- ldr r0, =gContestMoves
- mov r9, r0
- movs r5, 0
-_080E694E:
- ldr r3, [r6]
- ldr r2, [r3, 0x8]
- ldrb r0, [r2, 0x11]
- adds r0, r2, r0
- adds r1, r2, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080E699E
- ldr r0, [r3, 0x4]
- adds r0, r5, 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 _080E6980
- movs r0, 0x28
- b _080E6982
- .pool
-_080E6980:
- movs r0, 0xA
-_080E6982:
- strh r0, [r2, 0x4]
- ldr r0, [r6]
- ldr r0, [r0, 0x8]
- strb r4, [r0, 0x8]
- ldr r0, [r6]
- ldr r1, [r0, 0x8]
- movs r0, 0xFF
- strb r0, [r1, 0x9]
- bl sub_80E6A2C
- lsls r0, 24
- cmp r0, 0
- beq _080E699E
- adds r7, 0x1
-_080E699E:
- adds r5, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _080E694E
- cmp r7, 0
- bne _080E69B8
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80DD3F0
-_080E69B8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E6934
-
- thumb_func_start sub_80E69C8
-sub_80E69C8: @ 80E69C8
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gContestResources
- ldr r0, [r2]
- ldr r0, [r0, 0x8]
- adds r0, 0xD
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r2]
- ldr r1, [r0, 0x4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r2, r0, r1
- ldrb r1, [r2, 0x10]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E69FC
- adds r0, r3, 0
- movs r1, 0x2D
- b _080E6A22
- .pool
-_080E69FC:
- ldrb r0, [r2, 0x12]
- cmp r0, 0
- bne _080E6A1A
- ldrb r1, [r2, 0xB]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E6A26
- ldrb r1, [r2, 0xC]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- bne _080E6A26
- movs r0, 0x1
- b _080E6A28
-_080E6A1A:
- subs r0, 0x1
- strb r0, [r2, 0x12]
- adds r0, r3, 0
- movs r1, 0x2C
-_080E6A22:
- bl sub_80DD3D4
-_080E6A26:
- movs r0, 0
-_080E6A28:
- pop {r1}
- bx r1
- thumb_func_end sub_80E69C8
-
- thumb_func_start sub_80E6A2C
-sub_80E6A2C: @ 80E6A2C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r0, sp
- movs r1, 0
- movs r2, 0x8
- bl memset
- movs r7, 0
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x8]
- cmp r0, 0xFF
- beq _080E6B10
- mov r8, r4
-_080E6A4E:
- mov r1, r8
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- adds r0, 0x8
- adds r0, r7
- ldrb r5, [r0]
- adds r6, r5, 0
- adds r0, r5, 0
- bl sub_80E69C8
- lsls r0, 24
- cmp r0, 0
- beq _080E6AFE
- ldr r2, [r4]
- ldr r1, [r2, 0x8]
- ldrh r0, [r1, 0x4]
- strh r0, [r1, 0x6]
- ldr r1, [r2, 0x4]
- lsls r0, r5, 3
- subs r0, r5
- lsls r4, r0, 2
- adds r1, r4, r1
- ldrb r1, [r1, 0x10]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E6A8E
- ldr r1, [r2, 0x8]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- lsls r0, 1
- strh r0, [r1, 0x6]
-_080E6A8E:
- mov r0, r8
- ldr r3, [r0]
- ldr r0, [r3, 0x4]
- adds r1, r4, r0
- ldrb r0, [r1, 0x10]
- movs r4, 0x1
- ands r4, r0
- cmp r4, 0
- beq _080E6AB4
- ldr r1, [r3, 0x8]
- movs r0, 0xA
- strh r0, [r1, 0x6]
- adds r0, r5, 0
- movs r1, 0x2F
- bl sub_80DD3D4
- b _080E6AFE
- .pool
-_080E6AB4:
- ldr r2, [r3, 0x8]
- ldrb r1, [r1, 0xF]
- ldrh r0, [r2, 0x6]
- subs r0, r1
- strh r0, [r2, 0x6]
- ldr r2, [r3, 0x8]
- ldrh r1, [r2, 0x6]
- movs r3, 0x6
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bgt _080E6AD6
- strh r4, [r2, 0x6]
- adds r0, r5, 0
- movs r1, 0x2E
- bl sub_80DD3D4
- b _080E6AFE
-_080E6AD6:
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_80E6B3C
- mov r1, r8
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- ldrb r1, [r0, 0x6]
- adds r0, r6, 0
- bl sub_80DD40C
- lsls r0, r6, 1
- mov r2, sp
- adds r1, r2, r0
- mov r3, r8
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- ldrh r0, [r0, 0x6]
- strh r0, [r1]
-_080E6AFE:
- adds r7, 0x1
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- adds r0, 0x8
- adds r0, r7
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080E6A4E
-_080E6B10:
- movs r7, 0
- mov r1, sp
-_080E6B14:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080E6B24
- movs r0, 0x1
- b _080E6B2E
- .pool
-_080E6B24:
- adds r1, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _080E6B14
- movs r0, 0
-_080E6B2E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E6A2C
-
- thumb_func_start sub_80E6B3C
-sub_80E6B3C: @ 80E6B3C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gContestResources
- ldr r4, [r2]
- ldr r3, [r4, 0x4]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r3, r2, r3
- ldrh r0, [r3, 0x2]
- subs r0, r1
- strh r0, [r3, 0x2]
- ldr r0, [r4, 0x4]
- adds r2, r0
- ldrb r0, [r2, 0xE]
- adds r1, r0
- strb r1, [r2, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E6B3C
-
- thumb_func_start sub_80E6B70
-sub_80E6B70: @ 80E6B70
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- cmp r4, 0
- bge _080E6B80
- negs r0, r4
-_080E6B80:
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r4, 0
- bge _080E6B9E
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080E6BA8
- adds r0, r4, 0
- subs r0, 0xA
- adds r0, r1, r0
- b _080E6BA4
-_080E6B9E:
- lsls r0, 16
- asrs r0, 16
- subs r0, r4, r0
-_080E6BA4:
- lsls r0, 16
- lsrs r5, r0, 16
-_080E6BA8:
- lsls r0, r5, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E6B70
-
- thumb_func_start sub_80E6BB4
-sub_80E6BB4: @ 80E6BB4
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- cmp r4, 0
- bge _080E6BC4
- negs r0, r4
-_080E6BC4:
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080E6BDC
- adds r0, r4, 0
- adds r0, 0xA
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_080E6BDC:
- lsls r0, r5, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E6BB4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/contest_effect.s b/data/contest_effect.s
deleted file mode 100644
index 31b294836..000000000
--- a/data/contest_effect.s
+++ /dev/null
@@ -1,22 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ 858C2B4
- .include "data/contest_moves.inc"
-
-@ 858CDCC
- .include "data/contest_effects.inc"
-
-@ A lookup table with a 1 for each combo starter ID and a 0 for ID 0,
-@ which means "not a combo starter move".
-gComboStarterLookupTable:: @ 858CE8C
- .byte 0
- .rept 62
- .byte 1
- .endr
-
- .align 2
-@ 858CECC
- .include "data/contest_effect_function_table.inc"
diff --git a/data/contest_effect_function_table.inc b/data/contest_effect_function_table.inc
deleted file mode 100644
index 57d106844..000000000
--- a/data/contest_effect_function_table.inc
+++ /dev/null
@@ -1,50 +0,0 @@
- .align 2
-gContestEffectFunctionTable:: @ 858CECC
- .4byte ContestEffectFunc_080E547C
- .4byte ContestEffectFunc_080E5480
- .4byte ContestEffectFunc_080E54B0
- .4byte ContestEffectFunc_080E54E0
- .4byte ContestEffectFunc_080E5534
- .4byte ContestEffectFunc_080E5560
- .4byte ContestEffectFunc_080E5590
- .4byte ContestEffectFunc_080E55BC
- .4byte ContestEffectFunc_080E55EC
- .4byte ContestEffectFunc_080E5664
- .4byte ContestEffectFunc_080E55EC
- .4byte ContestEffectFunc_080E5664
- .4byte ContestEffectFunc_080E55EC
- .4byte ContestEffectFunc_080E5664
- .4byte ContestEffectFunc_080E56E0
- .4byte ContestEffectFunc_080E5718
- .4byte ContestEffectFunc_080E57CC
- .4byte ContestEffectFunc_080E588C
- .4byte ContestEffectFunc_080E5938
- .4byte ContestEffectFunc_080E5970
- .4byte ContestEffectFunc_080E59B0
- .4byte ContestEffectFunc_080E59D0
- .4byte ContestEffectFunc_080E59F0
- .4byte ContestEffectFunc_080E5A10
- .4byte ContestEffectFunc_080E5A30
- .4byte ContestEffectFunc_080E5A50
- .4byte ContestEffectFunc_080E5AD4
- .4byte ContestEffectFunc_080E5CD4
- .4byte ContestEffectFunc_080E5D7C
- .4byte ContestEffectFunc_080E5E04
- .4byte ContestEffectFunc_080E5E5C
- .4byte ContestEffectFunc_080E5EB4
- .4byte ContestEffectFunc_080E5F64
- .4byte ContestEffectFunc_080E5FE4
- .4byte ContestEffectFunc_080E6068
- .4byte ContestEffectFunc_080E611C
- .4byte ContestEffectFunc_080E620C
- .4byte ContestEffectFunc_080E62B8
- .4byte ContestEffectFunc_080E6334
- .4byte ContestEffectFunc_080E6398
- .4byte ContestEffectFunc_080E63E8
- .4byte ContestEffectFunc_080E6520
- .4byte ContestEffectFunc_080E6664
- .4byte ContestEffectFunc_080E6668
- .4byte ContestEffectFunc_080E6778
- .4byte ContestEffectFunc_080E67BC
- .4byte ContestEffectFunc_080E6868
- .4byte ContestEffectFunc_080E68EC
diff --git a/data/contest_effects.inc b/data/contest_effects.inc
deleted file mode 100644
index 46da79e45..000000000
--- a/data/contest_effects.inc
+++ /dev/null
@@ -1,289 +0,0 @@
- .align 2
-gContestEffects:: @ 858CDCC
-@ 0x00
- .byte 0 @ effect type
- .byte 40 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x01
- .byte 0 @ effect type
- .byte 60 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x02
- .byte 0 @ effect type
- .byte 80 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x03
- .byte 0 @ effect type
- .byte 30 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x04
- .byte 1 @ effect type
- .byte 20 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x05
- .byte 1 @ effect type
- .byte 10 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x06
- .byte 1 @ effect type
- .byte 30 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x07
- .byte 1 @ effect type
- .byte 30 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x08
- .byte 2 @ effect type
- .byte 30 @ appeal
- .byte 20 @ jam
- .byte 0 @ padding
-
-@ 0x09
- .byte 3 @ effect type
- .byte 30 @ appeal
- .byte 10 @ jam
- .byte 0 @ padding
-
-@ 0x0a
- .byte 2 @ effect type
- .byte 20 @ appeal
- .byte 30 @ jam
- .byte 0 @ padding
-
-@ 0x0b
- .byte 3 @ effect type
- .byte 20 @ appeal
- .byte 20 @ jam
- .byte 0 @ padding
-
-@ 0x0c
- .byte 2 @ effect type
- .byte 10 @ appeal
- .byte 40 @ jam
- .byte 0 @ padding
-
-@ 0x0d
- .byte 3 @ effect type
- .byte 10 @ appeal
- .byte 30 @ jam
- .byte 0 @ padding
-
-@ 0x0e
- .byte 2 @ effect type
- .byte 30 @ appeal
- .byte 20 @ jam
- .byte 0 @ padding
-
-@ 0x0f
- .byte 3 @ effect type
- .byte 30 @ appeal
- .byte 10 @ jam
- .byte 0 @ padding
-
-@ 0x10
- .byte 4 @ effect type
- .byte 30 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x11
- .byte 3 @ effect type
- .byte 20 @ appeal
- .byte 10 @ jam
- .byte 0 @ padding
-
-@ 0x12
- .byte 3 @ effect type
- .byte 40 @ appeal
- .byte 40 @ jam
- .byte 0 @ padding
-
-@ 0x13
- .byte 3 @ effect type
- .byte 20 @ appeal
- .byte 10 @ jam
- .byte 0 @ padding
-
-@ 0x14
- .byte 3 @ effect type
- .byte 20 @ appeal
- .byte 10 @ jam
- .byte 0 @ padding
-
-@ 0x15
- .byte 3 @ effect type
- .byte 20 @ appeal
- .byte 10 @ jam
- .byte 0 @ padding
-
-@ 0x16
- .byte 3 @ effect type
- .byte 20 @ appeal
- .byte 10 @ jam
- .byte 0 @ padding
-
-@ 0x17
- .byte 3 @ effect type
- .byte 20 @ appeal
- .byte 10 @ jam
- .byte 0 @ padding
-
-@ 0x18
- .byte 3 @ effect type
- .byte 20 @ appeal
- .byte 10 @ jam
- .byte 0 @ padding
-
-@ 0x19
- .byte 4 @ effect type
- .byte 20 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x1a
- .byte 4 @ effect type
- .byte 20 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x1b
- .byte 4 @ effect type
- .byte 30 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x1c
- .byte 3 @ effect type
- .byte 30 @ appeal
- .byte 10 @ jam
- .byte 0 @ padding
-
-@ 0x1d
- .byte 5 @ effect type
- .byte 20 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x1e
- .byte 5 @ effect type
- .byte 20 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x1f
- .byte 5 @ effect type
- .byte 10 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x20
- .byte 5 @ effect type
- .byte 10 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x21
- .byte 5 @ effect type
- .byte 10 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x22
- .byte 5 @ effect type
- .byte 10 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x23
- .byte 5 @ effect type
- .byte 20 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x24
- .byte 5 @ effect type
- .byte 20 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x25
- .byte 5 @ effect type
- .byte 30 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x26
- .byte 5 @ effect type
- .byte 10 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x27
- .byte 5 @ effect type
- .byte 10 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x28
- .byte 6 @ effect type
- .byte 30 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x29
- .byte 6 @ effect type
- .byte 30 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x2a
- .byte 6 @ effect type
- .byte 30 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x2b
- .byte 6 @ effect type
- .byte 30 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x2c
- .byte 5 @ effect type
- .byte 10 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x2d
- .byte 3 @ effect type
- .byte 20 @ appeal
- .byte 10 @ jam
- .byte 0 @ padding
-
-@ 0x2e
- .byte 5 @ effect type
- .byte 10 @ appeal
- .byte 0 @ jam
- .byte 0 @ padding
-
-@ 0x2f
- .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 aecea3a8d..000000000
--- a/data/contest_moves.inc
+++ /dev/null
@@ -1,2486 +0,0 @@
- .align 2
-gContestMoves:: @ 858C2B4
-@ -
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Pound
- .byte 0x00 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_POUND @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Karate Chop
- .byte 0x25 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Double Slap
- .byte 0x11 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_POUND, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Comet Punch
- .byte 0x23 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mega Punch
- .byte 0x00 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Pay Day
- .byte 0x2e @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Fire Punch
- .byte 0x00 @ effect ID
- .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 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Ice Punch
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte COMBO_STARTER_ICE_PUNCH @ combo starter ID
- .byte COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_FIRE_PUNCH, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Thunder Punch
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte COMBO_STARTER_THUNDER_PUNCH @ combo starter ID
- .byte COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Scratch
- .byte 0x00 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_SCRATCH @ combo starter ID
- .byte COMBO_STARTER_LEER, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Vice Grip
- .byte 0x00 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_VICE_GRIP @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Guillotine
- .byte 0x2d @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_VICE_GRIP, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Razor Wind
- .byte 0x25 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Swords Dance
- .byte 0x26 @ effect ID
- .byte CONTEST_BEAUTY
- .byte COMBO_STARTER_SWORDS_DANCE @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Cut
- .byte 0x2d @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Gust
- .byte 0x2b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Wing Attack
- .byte 0x23 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Whirlwind
- .byte 0x2b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Fly
- .byte 0x05 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Bind
- .byte 0x2f @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_VICE_GRIP, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Slam
- .byte 0x13 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_POUND, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Vine Whip
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Stomp
- .byte 0x0c @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, COMBO_STARTER_LEER, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Double Kick
- .byte 0x23 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mega Kick
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Jump Kick
- .byte 0x01 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_MIND_READER, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Rolling Kick
- .byte 0x0d @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sand-Attack
- .byte 0x11 @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_SAND_ATTACK @ combo starter ID
- .byte COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Headbutt
- .byte 0x0a @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Horn Attack
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte COMBO_STARTER_HORN_ATTACK @ combo starter ID
- .byte COMBO_STARTER_LEER, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Fury Attack
- .byte 0x11 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Horn Drill
- .byte 0x2d @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_HORN_ATTACK, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Tackle
- .byte 0x00 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_LEER, COMBO_STARTER_HARDEN, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Body Slam
- .byte 0x0c @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Wrap
- .byte 0x2f @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Take Down
- .byte 0x01 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Thrash
- .byte 0x12 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAGE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Double-Edge
- .byte 0x01 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Tail Whip
- .byte 0x1e @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CHARM, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Poison Sting
- .byte 0x0a @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Twineedle
- .byte 0x0a @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Pin Missile
- .byte 0x11 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Leer
- .byte 0x2f @ effect ID
- .byte CONTEST_COOL
- .byte COMBO_STARTER_LEER @ combo starter ID
- .byte COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Bite
- .byte 0x0d @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Growl
- .byte 0x1e @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CHARM, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Roar
- .byte 0x2b @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sing
- .byte 0x1a @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_SING @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Supersonic
- .byte 0x2b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sonic Boom
- .byte 0x23 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Disable
- .byte 0x1a @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Acid
- .byte 0x0c @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Ember
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Flamethrower
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mist
- .byte 0x05 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Water Gun
- .byte 0x00 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT, COMBO_STARTER_MUD_SPORT, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Hydro Pump
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Surf
- .byte 0x25 @ effect ID
- .byte CONTEST_BEAUTY
- .byte COMBO_STARTER_SURF @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_DIVE, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Ice Beam
- .byte 0x13 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Blizzard
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_POWDER_SNOW, COMBO_STARTER_HAIL, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Psybeam
- .byte 0x2b @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Bubble Beam
- .byte 0x0d @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Aurora Beam
- .byte 0x13 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Hyper Beam
- .byte 0x12 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Peck
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte COMBO_STARTER_PECK @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Drill Peck
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_PECK, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Submission
- .byte 0x01 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_MIND_READER, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Low Kick
- .byte 0x0c @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Counter
- .byte 0x04 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_TAUNT, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Seismic Toss
- .byte 0x13 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FAKE_OUT, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Strength
- .byte 0x13 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Absorb
- .byte 0x0a @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mega Drain
- .byte 0x0c @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Leech Seed
- .byte 0x0b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Growth
- .byte 0x26 @ effect ID
- .byte CONTEST_BEAUTY
- .byte COMBO_STARTER_GROWTH @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Razor Leaf
- .byte 0x25 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Solar Beam
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_GROWTH, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Poison Powder
- .byte 0x1b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SWEET_SCENT, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Stun Spore
- .byte 0x2d @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SWEET_SCENT, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sleep Powder
- .byte 0x0d @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SWEET_SCENT, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Petal Dance
- .byte 0x12 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ String Shot
- .byte 0x0a @ effect ID
- .byte CONTEST_SMART
- .byte COMBO_STARTER_STRING_SHOT @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Dragon Rage
- .byte 0x21 @ effect ID
- .byte CONTEST_COOL
- .byte COMBO_STARTER_DRAGON_RAGE @ combo starter ID
- .byte COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Fire Spin
- .byte 0x2f @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Thunder Shock
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Thunderbolt
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Thunder Wave
- .byte 0x2d @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Thunder
- .byte 0x0b @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CHARGE, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Rock Throw
- .byte 0x23 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_ROCK_THROW @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Earthquake
- .byte 0x0d @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_EARTHQUAKE @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Fissure
- .byte 0x2d @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_EARTHQUAKE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Dig
- .byte 0x05 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Toxic
- .byte 0x1b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Confusion
- .byte 0x0a @ effect ID
- .byte CONTEST_SMART
- .byte COMBO_STARTER_CONFUSION @ combo starter ID
- .byte COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CALM_MIND, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Psychic
- .byte 0x0d @ effect ID
- .byte CONTEST_SMART
- .byte COMBO_STARTER_PSYCHIC @ combo starter ID
- .byte COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Hypnosis
- .byte 0x0d @ effect ID
- .byte CONTEST_SMART
- .byte COMBO_STARTER_HYPNOSIS @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Meditate
- .byte 0x26 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Agility
- .byte 0x28 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Quick Attack
- .byte 0x28 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_DOUBLE_TEAM, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Rage
- .byte 0x03 @ effect ID
- .byte CONTEST_COOL
- .byte COMBO_STARTER_RAGE @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Teleport
- .byte 0x05 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Night Shade
- .byte 0x13 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mimic
- .byte 0x20 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Screech
- .byte 0x0d @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Double Team
- .byte 0x04 @ effect ID
- .byte CONTEST_COOL
- .byte COMBO_STARTER_DOUBLE_TEAM @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Recover
- .byte 0x13 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Harden
- .byte 0x04 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_HARDEN @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Minimize
- .byte 0x04 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Smokescreen
- .byte 0x10 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SMOG, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Confuse Ray
- .byte 0x2b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Withdraw
- .byte 0x05 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Defense Curl
- .byte 0x04 @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_DEFENSE_CURL @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Barrier
- .byte 0x05 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Light Screen
- .byte 0x05 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Haze
- .byte 0x1b @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Reflect
- .byte 0x05 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Focus Energy
- .byte 0x0d @ effect ID
- .byte CONTEST_COOL
- .byte COMBO_STARTER_FOCUS_ENERGY @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Bide
- .byte 0x05 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Metronome
- .byte 0x03 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mirror Move
- .byte 0x20 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Self-Destruct
- .byte 0x02 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Egg Bomb
- .byte 0x00 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SOFT_BOILED, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Lick
- .byte 0x0c @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Smog
- .byte 0x0d @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_SMOG @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sludge
- .byte 0x0c @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_SLUDGE @ combo starter ID
- .byte COMBO_STARTER_SLUDGE_BOMB, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Bone Club
- .byte 0x11 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_BONE_CLUB @ combo starter ID
- .byte COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Fire Blast
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Waterfall
- .byte 0x1e @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Clamp
- .byte 0x2f @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Swift
- .byte 0x1d @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Skull Bash
- .byte 0x0c @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Spike Cannon
- .byte 0x11 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Constrict
- .byte 0x0a @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Amnesia
- .byte 0x26 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Kinesis
- .byte 0x2f @ effect ID
- .byte CONTEST_SMART
- .byte COMBO_STARTER_KINESIS @ combo starter ID
- .byte COMBO_STARTER_PSYCHIC, COMBO_STARTER_CONFUSION, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Soft-Boiled
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte COMBO_STARTER_SOFT_BOILED @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Hi Jump Kick
- .byte 0x01 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_MIND_READER, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Glare
- .byte 0x0d @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_LEER, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Dream Eater
- .byte 0x0b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_HYPNOSIS, COMBO_STARTER_CALM_MIND, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Poison Gas
- .byte 0x1b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Barrage
- .byte 0x23 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Leech Life
- .byte 0x0a @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Lovely Kiss
- .byte 0x0d @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sky Attack
- .byte 0x25 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Transform
- .byte 0x03 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Bubble
- .byte 0x0b @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Dizzy Punch
- .byte 0x0c @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Spore
- .byte 0x0d @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Flash
- .byte 0x10 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Psywave
- .byte 0x2d @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Splash
- .byte 0x1e @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Acid Armor
- .byte 0x26 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Crabhammer
- .byte 0x25 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Explosion
- .byte 0x02 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Fury Swipes
- .byte 0x11 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SCRATCH, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Bonemerang
- .byte 0x00 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_BONEMERANG @ combo starter ID
- .byte COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Rest
- .byte 0x04 @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_REST @ combo starter ID
- .byte COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Rock Slide
- .byte 0x0d @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_ROCK_THROW, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Hyper Fang
- .byte 0x0c @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sharpen
- .byte 0x26 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Conversion
- .byte 0x23 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Tri Attack
- .byte 0x0b @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_LOCK_ON, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Super Fang
- .byte 0x2d @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SCARY_FACE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Slash
- .byte 0x25 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SWORDS_DANCE, COMBO_STARTER_SCRATCH, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Substitute
- .byte 0x04 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Struggle
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sketch
- .byte 0x20 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Triple Kick
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Thief
- .byte 0x1f @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Spider Web
- .byte 0x1a @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_STRING_SHOT, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mind Reader
- .byte 0x2f @ effect ID
- .byte CONTEST_SMART
- .byte COMBO_STARTER_MIND_READER @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Nightmare
- .byte 0x0d @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_HYPNOSIS, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Flame Wheel
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Snore
- .byte 0x00 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_REST, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Curse
- .byte 0x29 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_CURSE @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Flail
- .byte 0x21 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Conversion 2
- .byte 0x23 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Aeroblast
- .byte 0x25 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Cotton Spore
- .byte 0x11 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Reversal
- .byte 0x1e @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Spite
- .byte 0x21 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CURSE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Powder Snow
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte COMBO_STARTER_POWDER_SNOW @ combo starter ID
- .byte COMBO_STARTER_HAIL, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Protect
- .byte 0x05 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_HARDEN, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mach Punch
- .byte 0x28 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Scary Face
- .byte 0x11 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_SCARY_FACE @ combo starter ID
- .byte COMBO_STARTER_RAGE, COMBO_STARTER_LEER, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Faint Attack
- .byte 0x1d @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sweet Kiss
- .byte 0x1a @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CHARM, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Belly Drum
- .byte 0x26 @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_BELLY_DRUM @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sludge Bomb
- .byte 0x11 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_SLUDGE_BOMB @ combo starter ID
- .byte COMBO_STARTER_SLUDGE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mud-Slap
- .byte 0x11 @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_MUD_SLAP @ combo starter ID
- .byte COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SANDSTORM, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Octazooka
- .byte 0x11 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Spikes
- .byte 0x1a @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Zap Cannon
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_LOCK_ON, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Foresight
- .byte 0x1b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Destiny Bond
- .byte 0x02 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Perish Song
- .byte 0x2d @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Icy Wind
- .byte 0x0d @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Detect
- .byte 0x04 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_TAUNT, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Bone Rush
- .byte 0x00 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_BONE_RUSH @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Lock-On
- .byte 0x2f @ effect ID
- .byte CONTEST_SMART
- .byte COMBO_STARTER_LOCK_ON @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Outrage
- .byte 0x12 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sandstorm
- .byte 0x2b @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_SANDSTORM @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Giga Drain
- .byte 0x11 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Endure
- .byte 0x04 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_ENDURE @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Charm
- .byte 0x13 @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_CHARM @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Rollout
- .byte 0x2f @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ False Swipe
- .byte 0x0d @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Swagger
- .byte 0x1d @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Milk Drink
- .byte 0x23 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Spark
- .byte 0x0c @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Fury Cutter
- .byte 0x03 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Steel Wing
- .byte 0x23 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mean Look
- .byte 0x1a @ effect ID
- .byte CONTEST_BEAUTY
- .byte COMBO_STARTER_MEAN_LOOK @ combo starter ID
- .byte COMBO_STARTER_CURSE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Attract
- .byte 0x1a @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sleep Talk
- .byte 0x03 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_REST, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Heal Bell
- .byte 0x1e @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Return
- .byte 0x2c @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Present
- .byte 0x03 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Frustration
- .byte 0x2c @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Safeguard
- .byte 0x05 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Pain Split
- .byte 0x0c @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sacred Fire
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Magnitude
- .byte 0x2e @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Dynamic Punch
- .byte 0x11 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Megahorn
- .byte 0x23 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Dragon Breath
- .byte 0x0d @ effect ID
- .byte CONTEST_COOL
- .byte COMBO_STARTER_DRAGON_BREATH @ combo starter ID
- .byte COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Baton Pass
- .byte 0x1a @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Encore
- .byte 0x1a @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Pursuit
- .byte 0x2d @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Rapid Spin
- .byte 0x04 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sweet Scent
- .byte 0x0d @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_SWEET_SCENT @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Iron Tail
- .byte 0x0c @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Metal Claw
- .byte 0x00 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_METAL_SOUND, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Vital Throw
- .byte 0x29 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FAKE_OUT, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Morning Sun
- .byte 0x22 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Synthesis
- .byte 0x22 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Moonlight
- .byte 0x22 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Hidden Power
- .byte 0x03 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Cross Chop
- .byte 0x25 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Twister
- .byte 0x2b @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Rain Dance
- .byte 0x2e @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_RAIN_DANCE @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sunny Day
- .byte 0x2e @ effect ID
- .byte CONTEST_BEAUTY
- .byte COMBO_STARTER_SUNNY_DAY @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Crunch
- .byte 0x0c @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SCARY_FACE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mirror Coat
- .byte 0x04 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_TAUNT, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Psych Up
- .byte 0x23 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Extreme Speed
- .byte 0x28 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Ancient Power
- .byte 0x26 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Shadow Ball
- .byte 0x10 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Future Sight
- .byte 0x2f @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Rock Smash
- .byte 0x27 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Whirlpool
- .byte 0x2f @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Beat Up
- .byte 0x2d @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Fake Out
- .byte 0x13 @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_FAKE_OUT @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Uproar
- .byte 0x2b @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Stockpile
- .byte 0x04 @ effect ID
- .byte CONTEST_TOUGH
- .byte COMBO_STARTER_STOCKPILE @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Spit Up
- .byte 0x00 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_STOCKPILE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Swallow
- .byte 0x26 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_STOCKPILE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Heat Wave
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Hail
- .byte 0x0d @ effect ID
- .byte CONTEST_BEAUTY
- .byte COMBO_STARTER_HAIL @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Torment
- .byte 0x1a @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Flatter
- .byte 0x1a @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CHARM, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Will-O-Wisp
- .byte 0x0c @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Memento
- .byte 0x02 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Facade
- .byte 0x1e @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Focus Punch
- .byte 0x29 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Smelling Salt
- .byte 0x0a @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Follow Me
- .byte 0x2f @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Nature Power
- .byte 0x2e @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Charge
- .byte 0x23 @ effect ID
- .byte CONTEST_SMART
- .byte COMBO_STARTER_CHARGE @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Taunt
- .byte 0x1a @ effect ID
- .byte CONTEST_SMART
- .byte COMBO_STARTER_TAUNT @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Helping Hand
- .byte 0x1a @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Trick
- .byte 0x23 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Role Play
- .byte 0x1f @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Wish
- .byte 0x2f @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Assist
- .byte 0x22 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Ingrain
- .byte 0x05 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Superpower
- .byte 0x01 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_LOCK_ON, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Magic Coat
- .byte 0x05 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Recycle
- .byte 0x03 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Revenge
- .byte 0x29 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Brick Break
- .byte 0x0c @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Yawn
- .byte 0x1a @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_YAWN @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Knock Off
- .byte 0x0c @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FAKE_OUT, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Endeavor
- .byte 0x1e @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_ENDURE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Eruption
- .byte 0x21 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_ENDURE, COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_SUNNY_DAY, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Skill Swap
- .byte 0x1f @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Imprison
- .byte 0x1b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Refresh
- .byte 0x26 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_WATER_SPORT, COMBO_STARTER_SING, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Grudge
- .byte 0x21 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CURSE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Snatch
- .byte 0x2d @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Secret Power
- .byte 0x27 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Dive
- .byte 0x04 @ effect ID
- .byte CONTEST_BEAUTY
- .byte COMBO_STARTER_DIVE @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Arm Thrust
- .byte 0x11 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_FAKE_OUT, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Camouflage
- .byte 0x25 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Tail Glow
- .byte 0x26 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Luster Purge
- .byte 0x0a @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mist Ball
- .byte 0x0c @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Feather Dance
- .byte 0x1e @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Teeter Dance
- .byte 0x12 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Blaze Kick
- .byte 0x00 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mud Sport
- .byte 0x00 @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_MUD_SPORT @ combo starter ID
- .byte COMBO_STARTER_MUD_SLAP, COMBO_STARTER_WATER_SPORT, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Ice Ball
- .byte 0x2f @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Needle Arm
- .byte 0x0c @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Slack Off
- .byte 0x21 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_YAWN, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Hyper Voice
- .byte 0x0d @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Poison Fang
- .byte 0x1b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Crush Claw
- .byte 0x0c @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SWORDS_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Blast Burn
- .byte 0x12 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Hydro Cannon
- .byte 0x12 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Meteor Mash
- .byte 0x23 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Astonish
- .byte 0x0a @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Weather Ball
- .byte 0x00 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_HAIL, COMBO_STARTER_SANDSTORM @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Aromatherapy
- .byte 0x1e @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Fake Tears
- .byte 0x1e @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Air Cutter
- .byte 0x13 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Overheat
- .byte 0x01 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SUNNY_DAY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Odor Sleuth
- .byte 0x1b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Rock Tomb
- .byte 0x2f @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_ROCK_THROW, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Silver Wind
- .byte 0x26 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Metal Sound
- .byte 0x0d @ effect ID
- .byte CONTEST_SMART
- .byte COMBO_STARTER_METAL_SOUND @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Grass Whistle
- .byte 0x0d @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Tickle
- .byte 0x1b @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Cosmic Power
- .byte 0x26 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Water Spout
- .byte 0x21 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Signal Beam
- .byte 0x2b @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Shadow Punch
- .byte 0x1d @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Extrasensory
- .byte 0x0c @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sky Uppercut
- .byte 0x13 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_FOCUS_ENERGY, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sand Tomb
- .byte 0x2f @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_SANDSTORM, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Sheer Cold
- .byte 0x2d @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Muddy Water
- .byte 0x11 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Bullet Seed
- .byte 0x2d @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Aerial Ace
- .byte 0x1d @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Icicle Spear
- .byte 0x13 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Iron Defense
- .byte 0x05 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Block
- .byte 0x1a @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Howl
- .byte 0x26 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Dragon Claw
- .byte 0x13 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Frenzy Plant
- .byte 0x12 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Bulk Up
- .byte 0x26 @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Bounce
- .byte 0x05 @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Mud Shot
- .byte 0x0d @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Poison Tail
- .byte 0x1b @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Covet
- .byte 0x1f @ effect ID
- .byte CONTEST_CUTE
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Volt Tackle
- .byte 0x01 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Magical Leaf
- .byte 0x1d @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_GROWTH, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Water Sport
- .byte 0x00 @ effect ID
- .byte CONTEST_CUTE
- .byte COMBO_STARTER_WATER_SPORT @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_MUD_SPORT, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Calm Mind
- .byte 0x04 @ effect ID
- .byte CONTEST_SMART
- .byte COMBO_STARTER_CALM_MIND @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Leaf Blade
- .byte 0x25 @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Dragon Dance
- .byte 0x26 @ effect ID
- .byte CONTEST_COOL
- .byte COMBO_STARTER_DRAGON_DANCE @ combo starter ID
- .byte COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_BREATH, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Rock Blast
- .byte 0x23 @ effect ID
- .byte CONTEST_TOUGH
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Shock Wave
- .byte 0x1d @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CHARGE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Water Pulse
- .byte 0x2b @ effect ID
- .byte CONTEST_BEAUTY
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_RAIN_DANCE, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Doom Desire
- .byte 0x2f @ effect ID
- .byte CONTEST_COOL
- .byte 0 @ combo starter ID
- .byte 0, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
-
-@ Psycho Boost
- .byte 0x01 @ effect ID
- .byte CONTEST_SMART
- .byte 0 @ combo starter ID
- .byte COMBO_STARTER_CALM_MIND, 0, 0, 0 @ moves this move can follow to make a combo
- .byte 0 @ padding
diff --git a/include/contest.h b/include/contest.h
index 18f9ad21f..33080225b 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -415,6 +415,7 @@ extern struct ContestResources *gContestResources;
#define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000))
extern u32 gContestRngValue;
+extern u8 gUnknown_02039F26[4];
bool8 IsSpeciesNotUnown(u16 species);
void LoadContestBgAfterMoveAnim(void);
diff --git a/ld_script.txt b/ld_script.txt
index 19a08c7c5..62074be92 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -143,7 +143,7 @@ SECTIONS {
asm/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/secret_base.o(.text);
src/tv.o(.text);
@@ -445,7 +445,7 @@ SECTIONS {
data/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(.rodata);
src/secret_base.o(.rodata);
src/tv.o(.rodata);
diff --git a/src/contest_effect.c b/src/contest_effect.c
new file mode 100644
index 000000000..760d74d69
--- /dev/null
+++ b/src/contest_effect.c
@@ -0,0 +1,1080 @@
+#include "global.h"
+#include "random.h"
+#include "constants/moves.h"
+#include "contest.h"
+#include "contest_effect.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 FALSE;
+ else if (lastMoveComboStarterId == nextMoveComboMoves[0] || lastMoveComboStarterId == nextMoveComboMoves[1] || lastMoveComboStarterId == nextMoveComboMoves[2] || lastMoveComboStarterId == nextMoveComboMoves[3])
+ return gComboStarterLookupTable[lastMoveComboStarterId];
+ else
+ return FALSE;
+}
+
+// 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, j;
+
+ for (i = 0, j = 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;
+ u8 turnOrder = shared192D0.turnOrder[contestant];
+
+ if (turnOrder != 0)
+ {
+ int i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (shared192D0.turnOrder[contestant] > shared192D0.turnOrder[i])
+ {
+ u8 rval, jam;
+
+ shared192D0.jamQueue[0] = i;
+ shared192D0.jamQueue[1] = 0xFF;
+ rval = Random() % 10;
+
+ 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_80DE1E8(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_02039F26[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_02039F26[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;
+}
+
+static void ContestEffect_BetterIfSameType(void)
+{
+ s8 turnOrder = shared192D0.turnOrder[shared192D0.contestant];
+ s8 i = turnOrder - 1, j;
+ u16 move;
+
+ if (turnOrder == 0)
+ return;
+
+ while (1)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ if (shared192D0.turnOrder[j] == i)
+ break;
+ }
+ if (sContestantStatus[j].noMoreTurns || sContestantStatus[j].nervous || sContestantStatus[j].numTurnsSkipped)
+ {
+ if (--i < 0)
+ return;
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ move = sContestantStatus[shared192D0.contestant].currMove;
+ if (gContestMoves[move].contestCategory == gContestMoves[sContestantStatus[j].currMove].contestCategory)
+ {
+ sContestantStatus[shared192D0.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2;
+ SetContestantEffectStringID(shared192D0.contestant, CONTEST_STRING_SAME_TYPE_GOOD);
+ }
+}
+
+// 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;
+ }
+ else
+ {
+ 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
+ {
+ shared192D0.jam2 -= sContestantStatus[contestant].jamReduction;
+ if (shared192D0.jam2 <= 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/data/contest_moves.h b/src/data/contest_moves.h
new file mode 100644
index 000000000..ae560c833
--- /dev/null
+++ b/src/data/contest_moves.h
@@ -0,0 +1,3008 @@
+const struct ContestMove gContestMoves[MOVES_COUNT] =
+{
+ [MOVE_NONE] = {0},
+
+ [MOVE_POUND] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_POUND,
+ .comboMoves = {0},
+ },
+
+ [MOVE_KARATE_CHOP] =
+ {
+ .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY},
+ },
+
+ [MOVE_DOUBLE_SLAP] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_POUND},
+ },
+
+ [MOVE_COMET_PUNCH] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_MEGA_PUNCH] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER},
+ },
+
+ [MOVE_PAY_DAY] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FIRE_PUNCH] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = COMBO_STARTER_FIRE_PUNCH,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_ICE_PUNCH},
+ },
+
+ [MOVE_ICE_PUNCH] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = COMBO_STARTER_ICE_PUNCH,
+ .comboMoves = {COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_FIRE_PUNCH},
+ },
+
+ [MOVE_THUNDER_PUNCH] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = COMBO_STARTER_THUNDER_PUNCH,
+ .comboMoves = {COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH},
+ },
+
+ [MOVE_SCRATCH] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_SCRATCH,
+ .comboMoves = {COMBO_STARTER_LEER},
+ },
+
+ [MOVE_VICE_GRIP] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_VICE_GRIP,
+ .comboMoves = {0},
+ },
+
+ [MOVE_GUILLOTINE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_VICE_GRIP},
+ },
+
+ [MOVE_RAZOR_WIND] =
+ {
+ .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SWORDS_DANCE] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = COMBO_STARTER_SWORDS_DANCE,
+ .comboMoves = {0},
+ },
+
+ [MOVE_CUT] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SWORDS_DANCE},
+ },
+
+ [MOVE_GUST] =
+ {
+ .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_WING_ATTACK] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_WHIRLWIND] =
+ {
+ .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FLY] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_BIND] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_VICE_GRIP},
+ },
+
+ [MOVE_SLAM] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_POUND},
+ },
+
+ [MOVE_VINE_WHIP] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_GROWTH},
+ },
+
+ [MOVE_STOMP] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,{0, COMBO_STARTER_LEER},
+ },
+
+ [MOVE_DOUBLE_KICK] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_MEGA_KICK] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER},
+ },
+
+ [MOVE_JUMP_KICK] =
+ {
+ .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_MIND_READER},
+ },
+
+ [MOVE_ROLLING_KICK] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SAND_ATTACK] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_SAND_ATTACK,
+ .comboMoves = {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM},
+ },
+
+ [MOVE_HEADBUTT] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MON,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY},
+ },
+
+ [MOVE_HORN_ATTACK] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = COMBO_STARTER_HORN_ATTACK,
+ .comboMoves = {COMBO_STARTER_LEER},
+ },
+
+ [MOVE_FURY_ATTACK] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK},
+ },
+
+ [MOVE_HORN_DRILL] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_HORN_ATTACK},
+ },
+
+ [MOVE_TACKLE] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_LEER, COMBO_STARTER_HARDEN},
+ },
+
+ [MOVE_BODY_SLAM] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_WRAP] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TAKE_DOWN] =
+ {
+ .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN},
+ },
+
+ [MOVE_THRASH] =
+ {
+ .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAGE},
+ },
+
+ [MOVE_DOUBLE_EDGE] =
+ {
+ .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN},
+ },
+
+ [MOVE_TAIL_WHIP] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_LAST,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CHARM},
+ },
+
+ [MOVE_POISON_STING] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TWINEEDLE] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MON,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_PIN_MISSILE] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_LEER] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = COMBO_STARTER_LEER,
+ .comboMoves = {COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE},
+ },
+
+ [MOVE_BITE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE},
+ },
+
+ [MOVE_GROWL] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_LAST,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CHARM},
+ },
+
+ [MOVE_ROAR] =
+ {
+ .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SING] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_SING,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SUPERSONIC] =
+ {
+ .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SONIC_BOOM] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_DISABLE] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ACID] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_EMBER] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_FLAMETHROWER] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_MIST] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_WATER_GUN] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT, COMBO_STARTER_MUD_SPORT},
+ },
+
+ [MOVE_HYDRO_PUMP] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE},
+ },
+
+ [MOVE_SURF] =
+ {
+ .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = COMBO_STARTER_SURF,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_DIVE},
+ },
+
+ [MOVE_ICE_BEAM] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_BLIZZARD] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_POWDER_SNOW, COMBO_STARTER_HAIL},
+ },
+
+ [MOVE_PSYBEAM] =
+ {
+ .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CALM_MIND},
+ },
+
+ [MOVE_BUBBLE_BEAM] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE},
+ },
+
+ [MOVE_AURORA_BEAM] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_HYPER_BEAM] =
+ {
+ .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_PECK] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = COMBO_STARTER_PECK,
+ .comboMoves = {0},
+ },
+
+ [MOVE_DRILL_PECK] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_PECK},
+ },
+
+ [MOVE_SUBMISSION] =
+ {
+ .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_MIND_READER},
+ },
+
+ [MOVE_LOW_KICK] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_COUNTER] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_TAUNT},
+ },
+
+ [MOVE_SEISMIC_TOSS] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FAKE_OUT},
+ },
+
+ [MOVE_STRENGTH] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ABSORB] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_GROWTH},
+ },
+
+ [MOVE_MEGA_DRAIN] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_GROWTH},
+ },
+
+ [MOVE_LEECH_SEED] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_GROWTH] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = COMBO_STARTER_GROWTH,
+ .comboMoves = {0},
+ },
+
+ [MOVE_RAZOR_LEAF] =
+ {
+ .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_GROWTH},
+ },
+
+ [MOVE_SOLAR_BEAM] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_GROWTH},
+ },
+
+ [MOVE_POISON_POWDER] =
+ {
+ .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SWEET_SCENT},
+ },
+
+ [MOVE_STUN_SPORE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SWEET_SCENT},
+ },
+
+ [MOVE_SLEEP_POWDER] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SWEET_SCENT},
+ },
+
+ [MOVE_PETAL_DANCE] =
+ {
+ .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_GROWTH},
+ },
+
+ [MOVE_STRING_SHOT] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = COMBO_STARTER_STRING_SHOT,
+ .comboMoves = {0},
+ },
+
+ [MOVE_DRAGON_RAGE] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_LATER,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = COMBO_STARTER_DRAGON_RAGE,
+ .comboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE},
+ },
+
+ [MOVE_FIRE_SPIN] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_THUNDER_SHOCK] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CHARGE},
+ },
+
+ [MOVE_THUNDERBOLT] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CHARGE},
+ },
+
+ [MOVE_THUNDER_WAVE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CHARGE},
+ },
+
+ [MOVE_THUNDER] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CHARGE, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON},
+ },
+
+ [MOVE_ROCK_THROW] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_ROCK_THROW,
+ .comboMoves = {0},
+ },
+
+ [MOVE_EARTHQUAKE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_EARTHQUAKE,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FISSURE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_EARTHQUAKE},
+ },
+
+ [MOVE_DIG] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TOXIC] =
+ {
+ .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_CONFUSION] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = COMBO_STARTER_CONFUSION,
+ .comboMoves = {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CALM_MIND},
+ },
+
+ [MOVE_PSYCHIC] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = COMBO_STARTER_PSYCHIC,
+ .comboMoves = {COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND},
+ },
+
+ [MOVE_HYPNOSIS] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = COMBO_STARTER_HYPNOSIS,
+ .comboMoves = {0},
+ },
+
+ [MOVE_MEDITATE] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CALM_MIND},
+ },
+
+ [MOVE_AGILITY] =
+ {
+ .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_DOUBLE_TEAM},
+ },
+
+ [MOVE_QUICK_ATTACK] =
+ {
+ .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_DOUBLE_TEAM},
+ },
+
+ [MOVE_RAGE] =
+ {
+ .effect = CONTEST_EFFECT_REPETITION_NOT_BORING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = COMBO_STARTER_RAGE,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TELEPORT] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION},
+ },
+
+ [MOVE_NIGHT_SHADE] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_MIMIC] =
+ {
+ .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SCREECH] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_DOUBLE_TEAM] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = COMBO_STARTER_DOUBLE_TEAM,
+ .comboMoves = {0},
+ },
+
+ [MOVE_RECOVER] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_HARDEN] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_HARDEN,
+ .comboMoves = {0},
+ },
+
+ [MOVE_MINIMIZE] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SMOKESCREEN] =
+ {
+ .effect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SMOG},
+ },
+
+ [MOVE_CONFUSE_RAY] =
+ {
+ .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_WITHDRAW] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE},
+ },
+
+ [MOVE_DEFENSE_CURL] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_DEFENSE_CURL,
+ .comboMoves = {0},
+ },
+
+ [MOVE_BARRIER] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_LIGHT_SCREEN] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CALM_MIND},
+ },
+
+ [MOVE_HAZE] =
+ {
+ .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_REFLECT] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CALM_MIND},
+ },
+
+ [MOVE_FOCUS_ENERGY] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = COMBO_STARTER_FOCUS_ENERGY,
+ .comboMoves = {0},
+ },
+
+ [MOVE_BIDE] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_METRONOME] =
+ {
+ .effect = CONTEST_EFFECT_REPETITION_NOT_BORING,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_MIRROR_MOVE] =
+ {
+ .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SELF_DESTRUCT] =
+ {
+ .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_EGG_BOMB] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SOFT_BOILED},
+ },
+
+ [MOVE_LICK] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SMOG] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_SMOG,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SLUDGE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_SLUDGE,
+ .comboMoves = {COMBO_STARTER_SLUDGE_BOMB},
+ },
+
+ [MOVE_BONE_CLUB] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_BONE_CLUB,
+ .comboMoves = {COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH},
+ },
+
+ [MOVE_FIRE_BLAST] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_WATERFALL] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_LAST,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE},
+ },
+
+ [MOVE_CLAMP] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE},
+ },
+
+ [MOVE_SWIFT] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_FIRST,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SKULL_BASH] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SPIKE_CANNON] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_CONSTRICT] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MON,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_AMNESIA] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_KINESIS] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = COMBO_STARTER_KINESIS,
+ .comboMoves = {COMBO_STARTER_PSYCHIC, COMBO_STARTER_CONFUSION},
+ },
+
+ [MOVE_SOFT_BOILED] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = COMBO_STARTER_SOFT_BOILED,
+ .comboMoves = {0},
+ },
+
+ [MOVE_HI_JUMP_KICK] =
+ {
+ .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_MIND_READER},
+ },
+
+ [MOVE_GLARE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_LEER},
+ },
+
+ [MOVE_DREAM_EATER] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_HYPNOSIS, COMBO_STARTER_CALM_MIND},
+ },
+
+ [MOVE_POISON_GAS] =
+ {
+ .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_BARRAGE] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_LEECH_LIFE] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_LOVELY_KISS] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SKY_ATTACK] =
+ {
+ .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TRANSFORM] =
+ {
+ .effect = CONTEST_EFFECT_REPETITION_NOT_BORING,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_BUBBLE] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE},
+ },
+
+ [MOVE_DIZZY_PUNCH] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SPORE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FLASH] =
+ {
+ .effect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_PSYWAVE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CALM_MIND},
+ },
+
+ [MOVE_SPLASH] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_LAST,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ACID_ARMOR] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_CRABHAMMER] =
+ {
+ .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE},
+ },
+
+ [MOVE_EXPLOSION] =
+ {
+ .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FURY_SWIPES] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SCRATCH},
+ },
+
+ [MOVE_BONEMERANG] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_BONEMERANG,
+ .comboMoves = {COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH},
+ },
+
+ [MOVE_REST] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_REST,
+ .comboMoves = {COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN},
+ },
+
+ [MOVE_ROCK_SLIDE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_ROCK_THROW},
+ },
+
+ [MOVE_HYPER_FANG] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SHARPEN] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_CONVERSION] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TRI_ATTACK] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_LOCK_ON},
+ },
+
+ [MOVE_SUPER_FANG] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SCARY_FACE},
+ },
+
+ [MOVE_SLASH] =
+ {
+ .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SWORDS_DANCE, COMBO_STARTER_SCRATCH},
+ },
+
+ [MOVE_SUBSTITUTE] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_STRUGGLE] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SKETCH] =
+ {
+ .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TRIPLE_KICK] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY},
+ },
+
+ [MOVE_THIEF] =
+ {
+ .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SPIDER_WEB] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_STRING_SHOT},
+ },
+
+ [MOVE_MIND_READER] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = COMBO_STARTER_MIND_READER,
+ .comboMoves = {0},
+ },
+
+ [MOVE_NIGHTMARE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_HYPNOSIS},
+ },
+
+ [MOVE_FLAME_WHEEL] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_SNORE] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_REST},
+ },
+
+ [MOVE_CURSE] =
+ {
+ .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_CURSE,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FLAIL] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_LATER,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_ENDURE},
+ },
+
+ [MOVE_CONVERSION_2] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_AEROBLAST] =
+ {
+ .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_COTTON_SPORE] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_REVERSAL] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_LAST,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_ENDURE},
+ },
+
+ [MOVE_SPITE] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_LATER,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CURSE},
+ },
+
+ [MOVE_POWDER_SNOW] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = COMBO_STARTER_POWDER_SNOW,
+ .comboMoves = {COMBO_STARTER_HAIL},
+ },
+
+ [MOVE_PROTECT] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_HARDEN},
+ },
+
+ [MOVE_MACH_PUNCH] =
+ {
+ .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SCARY_FACE] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_SCARY_FACE,
+ .comboMoves = {COMBO_STARTER_RAGE, COMBO_STARTER_LEER},
+ },
+
+ [MOVE_FAINT_ATTACK] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_FIRST,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND},
+ },
+
+ [MOVE_SWEET_KISS] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CHARM},
+ },
+
+ [MOVE_BELLY_DRUM] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_BELLY_DRUM,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SLUDGE_BOMB] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_SLUDGE_BOMB,
+ .comboMoves = {COMBO_STARTER_SLUDGE},
+ },
+
+ [MOVE_MUD_SLAP] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_MUD_SLAP,
+ .comboMoves = {COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SANDSTORM},
+ },
+
+ [MOVE_OCTAZOOKA] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON},
+ },
+
+ [MOVE_SPIKES] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ZAP_CANNON] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_LOCK_ON},
+ },
+
+ [MOVE_FORESIGHT] =
+ {
+ .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_DESTINY_BOND] =
+ {
+ .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE},
+ },
+
+ [MOVE_PERISH_SONG] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING},
+ },
+
+ [MOVE_ICY_WIND] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_DETECT] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_TAUNT},
+ },
+
+ [MOVE_BONE_RUSH] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_BONE_RUSH,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG},
+ },
+
+ [MOVE_LOCK_ON] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = COMBO_STARTER_LOCK_ON,
+ .comboMoves = {0},
+ },
+
+ [MOVE_OUTRAGE] =
+ {
+ .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SANDSTORM] =
+ {
+ .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_SANDSTORM,
+ .comboMoves = {0},
+ },
+
+ [MOVE_GIGA_DRAIN] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_GROWTH},
+ },
+
+ [MOVE_ENDURE] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_ENDURE,
+ .comboMoves = {0},
+ },
+
+ [MOVE_CHARM] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_CHARM,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ROLLOUT] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN},
+ },
+
+ [MOVE_FALSE_SWIPE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SWORDS_DANCE},
+ },
+
+ [MOVE_SWAGGER] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_FIRST,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_MILK_DRINK] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SPARK] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CHARGE},
+ },
+
+ [MOVE_FURY_CUTTER] =
+ {
+ .effect = CONTEST_EFFECT_REPETITION_NOT_BORING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SWORDS_DANCE},
+ },
+
+ [MOVE_STEEL_WING] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_MEAN_LOOK] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = COMBO_STARTER_MEAN_LOOK,
+ .comboMoves = {COMBO_STARTER_CURSE},
+ },
+
+ [MOVE_ATTRACT] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SLEEP_TALK] =
+ {
+ .effect = CONTEST_EFFECT_REPETITION_NOT_BORING,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_REST},
+ },
+
+ [MOVE_HEAL_BELL] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_LAST,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_RETURN] =
+ {
+ .effect = CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_PRESENT] =
+ {
+ .effect = CONTEST_EFFECT_REPETITION_NOT_BORING,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FRUSTRATION] =
+ {
+ .effect = CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SAFEGUARD] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_PAIN_SPLIT] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_ENDURE},
+ },
+
+ [MOVE_SACRED_FIRE] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_MAGNITUDE] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_DYNAMIC_PUNCH] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER},
+ },
+
+ [MOVE_MEGAHORN] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_DRAGON_BREATH] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = COMBO_STARTER_DRAGON_BREATH,
+ .comboMoves = {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE},
+ },
+
+ [MOVE_BATON_PASS] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ENCORE] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_PURSUIT] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_RAPID_SPIN] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SWEET_SCENT] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_SWEET_SCENT,
+ .comboMoves = {0},
+ },
+
+ [MOVE_IRON_TAIL] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_METAL_CLAW] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_METAL_SOUND},
+ },
+
+ [MOVE_VITAL_THROW] =
+ {
+ .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FAKE_OUT},
+ },
+
+ [MOVE_MORNING_SUN] =
+ {
+ .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_SYNTHESIS] =
+ {
+ .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_MOONLIGHT] =
+ {
+ .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_HIDDEN_POWER] =
+ {
+ .effect = CONTEST_EFFECT_REPETITION_NOT_BORING,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_CROSS_CHOP] =
+ {
+ .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY},
+ },
+
+ [MOVE_TWISTER] =
+ {
+ .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_RAIN_DANCE] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_RAIN_DANCE,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SUNNY_DAY] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = COMBO_STARTER_SUNNY_DAY,
+ .comboMoves = {0},
+ },
+
+ [MOVE_CRUNCH] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SCARY_FACE},
+ },
+
+ [MOVE_MIRROR_COAT] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_TAUNT},
+ },
+
+ [MOVE_PSYCH_UP] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_EXTREME_SPEED] =
+ {
+ .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ANCIENT_POWER] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SHADOW_BALL] =
+ {
+ .effect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FUTURE_SIGHT] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND},
+ },
+
+ [MOVE_ROCK_SMASH] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_WHIRLPOOL] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE},
+ },
+
+ [MOVE_BEAT_UP] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FAKE_OUT] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_FAKE_OUT,
+ .comboMoves = {0},
+ },
+
+ [MOVE_UPROAR] =
+ {
+ .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_STOCKPILE] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = COMBO_STARTER_STOCKPILE,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SPIT_UP] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_STOCKPILE},
+ },
+
+ [MOVE_SWALLOW] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_STOCKPILE},
+ },
+
+ [MOVE_HEAT_WAVE] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_HAIL] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = COMBO_STARTER_HAIL,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TORMENT] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FLATTER] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CHARM},
+ },
+
+ [MOVE_WILL_O_WISP] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_MEMENTO] =
+ {
+ .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FACADE] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_LAST,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FOCUS_PUNCH] =
+ {
+ .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY},
+ },
+
+ [MOVE_SMELLING_SALT] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FOLLOW_ME] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_NATURE_POWER] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_CHARGE] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = COMBO_STARTER_CHARGE,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TAUNT] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = COMBO_STARTER_TAUNT,
+ .comboMoves = {0},
+ },
+
+ [MOVE_HELPING_HAND] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TRICK] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ROLE_PLAY] =
+ {
+ .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_WISH] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ASSIST] =
+ {
+ .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_INGRAIN] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SUPERPOWER] =
+ {
+ .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_LOCK_ON},
+ },
+
+ [MOVE_MAGIC_COAT] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_RECYCLE] =
+ {
+ .effect = CONTEST_EFFECT_REPETITION_NOT_BORING,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_REVENGE] =
+ {
+ .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_BRICK_BREAK] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY},
+ },
+
+ [MOVE_YAWN] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_YAWN,
+ .comboMoves = {0},
+ },
+
+ [MOVE_KNOCK_OFF] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FAKE_OUT},
+ },
+
+ [MOVE_ENDEAVOR] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_LAST,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_ENDURE},
+ },
+
+ [MOVE_ERUPTION] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_LATER,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_ENDURE, COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_SKILL_SWAP] =
+ {
+ .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_IMPRISON] =
+ {
+ .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_REFRESH] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_WATER_SPORT, COMBO_STARTER_SING},
+ },
+
+ [MOVE_GRUDGE] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_LATER,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CURSE},
+ },
+
+ [MOVE_SNATCH] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SECRET_POWER] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_DIVE] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = COMBO_STARTER_DIVE,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF},
+ },
+
+ [MOVE_ARM_THRUST] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_FAKE_OUT},
+ },
+
+ [MOVE_CAMOUFLAGE] =
+ {
+ .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TAIL_GLOW] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_LUSTER_PURGE] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CALM_MIND},
+ },
+
+ [MOVE_MIST_BALL] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CALM_MIND},
+ },
+
+ [MOVE_FEATHER_DANCE] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_LAST,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TEETER_DANCE] =
+ {
+ .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_BLAZE_KICK] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_MUD_SPORT] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_MUD_SPORT,
+ .comboMoves = {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_WATER_SPORT},
+ },
+
+ [MOVE_ICE_BALL] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_NEEDLE_ARM] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SLACK_OFF] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_LATER,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_YAWN},
+ },
+
+ [MOVE_HYPER_VOICE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_POISON_FANG] =
+ {
+ .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_CRUSH_CLAW] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SWORDS_DANCE},
+ },
+
+ [MOVE_BLAST_BURN] =
+ {
+ .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_HYDRO_CANNON] =
+ {
+ .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE},
+ },
+
+ [MOVE_METEOR_MASH] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ASTONISH] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_PREV_MON,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_WEATHER_BALL] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_HAIL, COMBO_STARTER_SANDSTORM},
+ },
+
+ [MOVE_AROMATHERAPY] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_LAST,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_FAKE_TEARS] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_LAST,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_AIR_CUTTER] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_OVERHEAT] =
+ {
+ .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SUNNY_DAY},
+ },
+
+ [MOVE_ODOR_SLEUTH] =
+ {
+ .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ROCK_TOMB] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_ROCK_THROW},
+ },
+
+ [MOVE_SILVER_WIND] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_METAL_SOUND] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = COMBO_STARTER_METAL_SOUND,
+ .comboMoves = {0},
+ },
+
+ [MOVE_GRASS_WHISTLE] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_TICKLE] =
+ {
+ .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_COSMIC_POWER] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_WATER_SPOUT] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_WHEN_LATER,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE},
+ },
+
+ [MOVE_SIGNAL_BEAM] =
+ {
+ .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SHADOW_PUNCH] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_FIRST,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_EXTRASENSORY] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SKY_UPPERCUT] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_FOCUS_ENERGY},
+ },
+
+ [MOVE_SAND_TOMB] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_SANDSTORM},
+ },
+
+ [MOVE_SHEER_COLD] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_MUDDY_WATER] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE},
+ },
+
+ [MOVE_BULLET_SEED] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_GROWTH},
+ },
+
+ [MOVE_AERIAL_ACE] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_FIRST,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_ICICLE_SPEAR] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_IRON_DEFENSE] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_BLOCK] =
+ {
+ .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_HOWL] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_DRAGON_CLAW] =
+ {
+ .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE},
+ },
+
+ [MOVE_FRENZY_PLANT] =
+ {
+ .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_GROWTH},
+ },
+
+ [MOVE_BULK_UP] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_BOUNCE] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_MUD_SHOT] =
+ {
+ .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_POISON_TAIL] =
+ {
+ .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_COVET] =
+ {
+ .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_VOLT_TACKLE] =
+ {
+ .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CHARGE},
+ },
+
+ [MOVE_MAGICAL_LEAF] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_FIRST,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_GROWTH},
+ },
+
+ [MOVE_WATER_SPORT] =
+ {
+ .effect = CONTEST_EFFECT_HIGHLY_APPEALING,
+ .contestCategory = CONTEST_CATEGORY_CUTE,
+ .comboStarterId = COMBO_STARTER_WATER_SPORT,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_MUD_SPORT},
+ },
+
+ [MOVE_CALM_MIND] =
+ {
+ .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = COMBO_STARTER_CALM_MIND,
+ .comboMoves = {0},
+ },
+
+ [MOVE_LEAF_BLADE] =
+ {
+ .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_DRAGON_DANCE] =
+ {
+ .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = COMBO_STARTER_DRAGON_DANCE,
+ .comboMoves = {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_BREATH},
+ },
+
+ [MOVE_ROCK_BLAST] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ .contestCategory = CONTEST_CATEGORY_TOUGH,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_SHOCK_WAVE] =
+ {
+ .effect = CONTEST_EFFECT_BETTER_IF_FIRST,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CHARGE},
+ },
+
+ [MOVE_WATER_PULSE] =
+ {
+ .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ .contestCategory = CONTEST_CATEGORY_BEAUTY,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_RAIN_DANCE},
+ },
+
+ [MOVE_DOOM_DESIRE] =
+ {
+ .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
+ .contestCategory = CONTEST_CATEGORY_COOL,
+ .comboStarterId = 0,
+ .comboMoves = {0},
+ },
+
+ [MOVE_PSYCHO_BOOST] =
+ {
+ .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
+ .contestCategory = CONTEST_CATEGORY_SMART,
+ .comboStarterId = 0,
+ .comboMoves = {COMBO_STARTER_CALM_MIND},
+ },
+};
+
+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,
+};
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index c47ddb14c..1afbaab7a 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -253,7 +253,7 @@ static void sub_81C4D18(u8 a);
#include "data/text/move_descriptions.h"
#include "data/text/nature_names.h"
-static const struct BgTemplate gUnknown_0861CBB4[] =
+static const struct BgTemplate gUnknown_0861CBB4[] =
{
{
.bg = 0,
@@ -526,13 +526,13 @@ static const union AnimCmd *const gSpriteAnimTable_861CF60[] = {
gSpriteAnim_861CF50,
gSpriteAnim_861CF58,
};
-static const struct CompressedSpriteSheet gUnknown_0861CFBC =
+static const struct CompressedSpriteSheet gUnknown_0861CFBC =
{
.data = gMoveTypes_Gfx,
.size = 0x1700,
.tag = 30002
};
-static const struct SpriteTemplate gUnknown_0861CFC4 =
+static const struct SpriteTemplate gUnknown_0861CFC4 =
{
.tileTag = 30002,
.paletteTag = 30002,
@@ -622,7 +622,7 @@ static const struct CompressedSpritePalette gUnknown_0861D07C =
.data = gUnknown_08D97CF4,
.tag = 30000
};
-static const struct SpriteTemplate gUnknown_0861D084 =
+static const struct SpriteTemplate gUnknown_0861D084 =
{
.tileTag = 30000,
.paletteTag = 30000,
@@ -696,7 +696,7 @@ static const struct CompressedSpritePalette gUnknown_0861D100 =
.data = gStatusPal_Icons,
.tag = 30001
};
-static const struct SpriteTemplate gUnknown_0861D108 =
+static const struct SpriteTemplate gUnknown_0861D108 =
{
.tileTag = 30001,
.paletteTag = 30001,
@@ -722,7 +722,7 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex,
pssData->isBoxMon = TRUE;
else
pssData->isBoxMon = FALSE;
-
+
switch (mode)
{
case PSS_MODE_NORMAL:
@@ -747,7 +747,7 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex,
if (gMonSpritesGfxPtr == 0)
sub_806F2AC(0, 0);
-
+
SetMainCallback2(SummaryScreen_LoadingCB2);
}
@@ -1029,7 +1029,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a)
sum->isEgg = TRUE;
else
sum->isEgg = GetMonData(a, MON_DATA_IS_EGG);
-
+
break;
case 1:
for (i = 0; i < 4; i++)
@@ -1384,7 +1384,7 @@ static void sub_81C0A8C(u8 taskId, s8 b)
return;
else if (b == 1 && pssData->currPageIndex == pssData->maxPageIndex)
return;
-
+
PlaySE(SE_SELECT);
sub_81C2C38(pssData->currPageIndex);
pssData->currPageIndex += b;
@@ -1751,7 +1751,7 @@ static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2)
SetMonData(mon, MON_DATA_PP1 + moveIndex1, &move2pp);
SetMonData(mon, MON_DATA_PP1 + moveIndex2, &move1pp);
SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses);
-
+
summary->moves[moveIndex1] = move2;
summary->moves[moveIndex2] = move1;
@@ -1786,7 +1786,7 @@ static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2
SetBoxMonData(mon, MON_DATA_PP1 + moveIndex1, &move2pp);
SetBoxMonData(mon, MON_DATA_PP1 + moveIndex2, &move1pp);
SetBoxMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses);
-
+
summary->moves[moveIndex1] = move2;
summary->moves[moveIndex2] = move1;
@@ -2289,10 +2289,10 @@ static void sub_81C240C(u16 move)
if (move != MOVE_NONE)
{
effectValue = gContestEffects[gContestMoves[move].effect].appeal;
-
+
if (effectValue != 0xFF)
effectValue /= 10;
-
+
for (i = 0; i < 8; i++)
{
if (effectValue != 0xFF && i < effectValue)
@@ -2309,7 +2309,7 @@ static void sub_81C240C(u16 move)
if (effectValue != 0xFF)
effectValue /= 10;
-
+
for (i = 0; i < 8; i++)
{
if (effectValue != 0xFF && i < effectValue)
@@ -2458,21 +2458,21 @@ static void PrintPageNamesAndStatsPageToWindows(void)
iconXPos = 0;
PrintAOrBButtonIcon(4, FALSE, iconXPos);
SummaryScreen_PrintTextOnWindow(4, gText_Cancel2, stringXPos, 1, 0, 0);
-
+
stringXPos = GetStringRightAlignXOffset(1, gText_Info, 0x3E);
iconXPos = stringXPos - 16;
if (iconXPos < 0)
iconXPos = 0;
PrintAOrBButtonIcon(5, FALSE, iconXPos);
SummaryScreen_PrintTextOnWindow(5, gText_Info, stringXPos, 1, 0, 0);
-
+
stringXPos = GetStringRightAlignXOffset(1, gText_Switch, 0x3E);
iconXPos = stringXPos - 16;
if (iconXPos < 0)
iconXPos = 0;
PrintAOrBButtonIcon(6, FALSE, iconXPos);
SummaryScreen_PrintTextOnWindow(6, gText_Switch, stringXPos, 1, 0, 0);
-
+
SummaryScreen_PrintTextOnWindow(8, gText_RentalPkmn, 0, 1, 0, 1);
SummaryScreen_PrintTextOnWindow(9, gText_TypeSlash, 0, 1, 0, 0);
statsXPos = 6 + GetStringCenterAlignXOffset(1, gText_HP4, 42);
@@ -2733,7 +2733,7 @@ static void BufferMonTrainerMemo(void)
{
struct PokeSummary *sum = &pssData->summary;
const u8 *text;
-
+
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_0861CE74);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_0861CE7B);
@@ -2886,7 +2886,7 @@ static void PrintEggState(void)
text = gText_EggWillTakeSomeTime;
else
text = gText_EggWillTakeALongTime;
-
+
SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), text, 0, 1, 0, 0);
}
@@ -3013,14 +3013,14 @@ static void BufferLeftColumnStats(void)
ConvertIntToDecimalStringN(maxHPString, pssData->summary.maxHP, 1, 3);
ConvertIntToDecimalStringN(attackString, pssData->summary.atk, 1, 7);
ConvertIntToDecimalStringN(defenseString, pssData->summary.def, 1, 7);
-
+
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, currentHPString);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, maxHPString);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, attackString);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, defenseString);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE82);
-
+
Free(currentHPString);
Free(maxHPString);
Free(attackString);
@@ -3037,7 +3037,7 @@ static void BufferRightColumnStats(void)
ConvertIntToDecimalStringN(gStringVar1, pssData->summary.spatk, 1, 3);
ConvertIntToDecimalStringN(gStringVar2, pssData->summary.spdef, 1, 3);
ConvertIntToDecimalStringN(gStringVar3, pssData->summary.speed, 1, 3);
-
+
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2);
@@ -3065,7 +3065,7 @@ static void PrintExpPointsNextLevel(void)
expToNextLevel = gExperienceTables[gBaseStats[sum->species].growthRate][sum->level + 1] - sum->exp;
else
expToNextLevel = 0;
-
+
ConvertIntToDecimalStringN(gStringVar1, expToNextLevel, 1, 6);
offset = GetStringRightAlignXOffset(1, gStringVar1, 42) + 2;
SummaryScreen_PrintTextOnWindow(windowId, gStringVar1, offset, 17, 0, 0);
@@ -3660,7 +3660,7 @@ static void sub_81C48F0(void)
sub_806EE98();
paletteIndex = (gSprites[pssData->spriteIds[0]].oam.paletteNum * 16) | 0x100;
-
+
for (i = 0; i < 16; i++)
{
gPlttBufferUnfaded[(u16)(i + paletteIndex)] = gPlttBufferFaded[(u16)(i + paletteIndex)];