summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorProjectRevoTPP <projectrevotpp@hotmail.com>2018-01-12 22:48:47 -0500
committerProjectRevoTPP <projectrevotpp@hotmail.com>2018-01-12 22:48:47 -0500
commite33a9b2b535b401a47455065dd4cb9364ed9c9f7 (patch)
tree45031eae974b5965d51dd69a08c0b2d2b0d24bea
parentfdeee269791ba9e163f32522d44526b0e2b58f29 (diff)
up to ContestAICmd_unk_2C
-rw-r--r--asm/contest_ai.s848
-rw-r--r--include/contest.h1
-rwxr-xr-xsrc/contest_ai.c223
3 files changed, 224 insertions, 848 deletions
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
index a0255dff7..566f9c0ab 100644
--- a/asm/contest_ai.s
+++ b/asm/contest_ai.s
@@ -5,854 +5,6 @@
.text
- thumb_func_start ContestAICmd_unk_15
-ContestAICmd_unk_15: @ 8128F90
- ldr r2, _08128FB4 @ =gSharedMem + 0x192E4
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r2, 0
- subs r1, 0x84
- adds r0, r1
- ldrh r0, [r0, 0x4]
- strh r0, [r2, 0x18]
- ldr r1, _08128FB8 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128FB4: .4byte gSharedMem + 0x192E4
-_08128FB8: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_15
-
- thumb_func_start ContestAICmd_unk_16
-ContestAICmd_unk_16: @ 8128FBC
- push {r4,r5,lr}
- bl ContestAICmd_unk_15
- ldr r2, _08128FF4 @ =gSharedMem + 0x192E4
- ldr r4, _08128FF8 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _08128FFC
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08129000
- .align 2, 0
-_08128FF4: .4byte gSharedMem + 0x192E4
-_08128FF8: .4byte gAIScriptPtr
-_08128FFC:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129000:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_16
-
- thumb_func_start ContestAICmd_unk_17
-ContestAICmd_unk_17: @ 8129008
- push {r4,r5,lr}
- bl ContestAICmd_unk_15
- ldr r2, _08129040 @ =gSharedMem + 0x192E4
- ldr r4, _08129044 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- ble _08129048
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812904C
- .align 2, 0
-_08129040: .4byte gSharedMem + 0x192E4
-_08129044: .4byte gAIScriptPtr
-_08129048:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812904C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_17
-
- thumb_func_start ContestAICmd_unk_18
-ContestAICmd_unk_18: @ 8129054
- push {r4,r5,lr}
- bl ContestAICmd_unk_15
- ldr r2, _0812908C @ =gSharedMem + 0x192E4
- ldr r4, _08129090 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bne _08129094
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08129098
- .align 2, 0
-_0812908C: .4byte gSharedMem + 0x192E4
-_08129090: .4byte gAIScriptPtr
-_08129094:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129098:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_18
-
- thumb_func_start ContestAICmd_unk_19
-ContestAICmd_unk_19: @ 81290A0
- push {r4,r5,lr}
- bl ContestAICmd_unk_15
- ldr r2, _081290D8 @ =gSharedMem + 0x192E4
- ldr r4, _081290DC @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- beq _081290E0
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081290E4
- .align 2, 0
-_081290D8: .4byte gSharedMem + 0x192E4
-_081290DC: .4byte gAIScriptPtr
-_081290E0:
- adds r0, r3, 0x6
- str r0, [r4]
-_081290E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_19
-
- thumb_func_start ContestAICmd_unk_1A
-ContestAICmd_unk_1A: @ 81290EC
- ldr r2, _08129108 @ =gSharedMem + 0x192E4
- ldr r1, _0812910C @ =gUnknown_02038670
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x18]
- ldr r1, _08129110 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129108: .4byte gSharedMem + 0x192E4
-_0812910C: .4byte gUnknown_02038670
-_08129110: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_1A
-
- thumb_func_start ContestAICmd_unk_1B
-ContestAICmd_unk_1B: @ 8129114
- push {r4,r5,lr}
- bl ContestAICmd_unk_1A
- ldr r2, _0812914C @ =gSharedMem + 0x192E4
- ldr r4, _08129150 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _08129154
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08129158
- .align 2, 0
-_0812914C: .4byte gSharedMem + 0x192E4
-_08129150: .4byte gAIScriptPtr
-_08129154:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129158:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_1B
-
- thumb_func_start ContestAICmd_unk_1C
-ContestAICmd_unk_1C: @ 8129160
- push {r4,r5,lr}
- bl ContestAICmd_unk_1A
- ldr r2, _08129198 @ =gSharedMem + 0x192E4
- ldr r4, _0812919C @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- ble _081291A0
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081291A4
- .align 2, 0
-_08129198: .4byte gSharedMem + 0x192E4
-_0812919C: .4byte gAIScriptPtr
-_081291A0:
- adds r0, r3, 0x6
- str r0, [r4]
-_081291A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_1C
-
- thumb_func_start ContestAICmd_unk_1D
-ContestAICmd_unk_1D: @ 81291AC
- push {r4,r5,lr}
- bl ContestAICmd_unk_1A
- ldr r2, _081291E4 @ =gSharedMem + 0x192E4
- ldr r4, _081291E8 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bne _081291EC
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081291F0
- .align 2, 0
-_081291E4: .4byte gSharedMem + 0x192E4
-_081291E8: .4byte gAIScriptPtr
-_081291EC:
- adds r0, r3, 0x6
- str r0, [r4]
-_081291F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_1D
-
- thumb_func_start ContestAICmd_unk_1E
-ContestAICmd_unk_1E: @ 81291F8
- push {r4,r5,lr}
- bl ContestAICmd_unk_1A
- ldr r2, _08129230 @ =gSharedMem + 0x192E4
- ldr r4, _08129234 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- beq _08129238
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812923C
- .align 2, 0
-_08129230: .4byte gSharedMem + 0x192E4
-_08129234: .4byte gAIScriptPtr
-_08129238:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812923C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_1E
-
- thumb_func_start ContestAICmd_get_contest_type
-ContestAICmd_get_contest_type: @ 8129244
- ldr r1, _08129258 @ =gSharedMem + 0x192E4
- ldr r0, _0812925C @ =gSpecialVar_ContestCategory
- ldrh r0, [r0]
- strh r0, [r1, 0x18]
- ldr r1, _08129260 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129258: .4byte gSharedMem + 0x192E4
-_0812925C: .4byte gSpecialVar_ContestCategory
-_08129260: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_contest_type
-
- thumb_func_start ContestAICmd_unk_20
-ContestAICmd_unk_20: @ 8129264
- push {lr}
- bl ContestAICmd_get_contest_type
- ldr r0, _08129294 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129298 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812929C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081292A0
- .align 2, 0
-_08129294: .4byte gSharedMem + 0x192E4
-_08129298: .4byte gAIScriptPtr
-_0812929C:
- adds r0, r2, 0x5
- str r0, [r3]
-_081292A0:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_20
-
- thumb_func_start ContestAICmd_unk_21
-ContestAICmd_unk_21: @ 81292A4
- push {lr}
- bl ContestAICmd_get_contest_type
- ldr r0, _081292D4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081292D8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081292DC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081292E0
- .align 2, 0
-_081292D4: .4byte gSharedMem + 0x192E4
-_081292D8: .4byte gAIScriptPtr
-_081292DC:
- adds r0, r2, 0x5
- str r0, [r3]
-_081292E0:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_21
-
- thumb_func_start ContestAICmd_get_move_excitement
-ContestAICmd_get_move_excitement: @ 81292E4
- push {r4,lr}
- ldr r2, _08129318 @ =gContestMons
- ldr r4, _0812931C @ =gSharedMem + 0x192E4
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl Contest_GetMoveExcitement
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _08129320 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129318: .4byte gContestMons
-_0812931C: .4byte gSharedMem + 0x192E4
-_08129320: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_move_excitement
-
- thumb_func_start ContestAICmd_unk_23
-ContestAICmd_unk_23: @ 8129324
- push {r4,lr}
- bl ContestAICmd_get_move_excitement
- ldr r0, _08129354 @ =gSharedMem + 0x192E4
- ldr r3, _08129358 @ =gAIScriptPtr
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bge _0812935C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129360
- .align 2, 0
-_08129354: .4byte gSharedMem + 0x192E4
-_08129358: .4byte gAIScriptPtr
-_0812935C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129360:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_23
-
- thumb_func_start ContestAICmd_unk_24
-ContestAICmd_unk_24: @ 8129368
- push {r4,lr}
- bl ContestAICmd_get_move_excitement
- ldr r0, _08129398 @ =gSharedMem + 0x192E4
- ldr r3, _0812939C @ =gAIScriptPtr
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- ble _081293A0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081293A4
- .align 2, 0
-_08129398: .4byte gSharedMem + 0x192E4
-_0812939C: .4byte gAIScriptPtr
-_081293A0:
- adds r0, r2, 0x5
- str r0, [r3]
-_081293A4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_24
-
- thumb_func_start ContestAICmd_unk_25
-ContestAICmd_unk_25: @ 81293AC
- push {r4,lr}
- bl ContestAICmd_get_move_excitement
- ldr r0, _081293DC @ =gSharedMem + 0x192E4
- ldr r3, _081293E0 @ =gAIScriptPtr
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _081293E4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081293E8
- .align 2, 0
-_081293DC: .4byte gSharedMem + 0x192E4
-_081293E0: .4byte gAIScriptPtr
-_081293E4:
- adds r0, r2, 0x5
- str r0, [r3]
-_081293E8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_25
-
- thumb_func_start ContestAICmd_unk_26
-ContestAICmd_unk_26: @ 81293F0
- push {r4,lr}
- bl ContestAICmd_get_move_excitement
- ldr r0, _08129420 @ =gSharedMem + 0x192E4
- ldr r3, _08129424 @ =gAIScriptPtr
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- beq _08129428
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812942C
- .align 2, 0
-_08129420: .4byte gSharedMem + 0x192E4
-_08129424: .4byte gAIScriptPtr
-_08129428:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812942C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_26
-
- thumb_func_start ContestAICmd_get_move_effect
-ContestAICmd_get_move_effect: @ 8129434
- ldr r2, _08129460 @ =gContestMons
- ldr r3, _08129464 @ =gSharedMem + 0x192E4
- ldrb r1, [r3, 0x4]
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r1, _08129468 @ =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r3, 0x18]
- ldr r1, _0812946C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129460: .4byte gContestMons
-_08129464: .4byte gSharedMem + 0x192E4
-_08129468: .4byte gContestMoves
-_0812946C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_move_effect
-
- thumb_func_start ContestAICmd_unk_28
-ContestAICmd_unk_28: @ 8129470
- push {lr}
- bl ContestAICmd_get_move_effect
- ldr r0, _081294A0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081294A4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081294A8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081294AC
- .align 2, 0
-_081294A0: .4byte gSharedMem + 0x192E4
-_081294A4: .4byte gAIScriptPtr
-_081294A8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081294AC:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_28
-
- thumb_func_start ContestAICmd_unk_29
-ContestAICmd_unk_29: @ 81294B0
- push {lr}
- bl ContestAICmd_get_move_effect
- ldr r0, _081294E0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081294E4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081294E8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081294EC
- .align 2, 0
-_081294E0: .4byte gSharedMem + 0x192E4
-_081294E4: .4byte gAIScriptPtr
-_081294E8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081294EC:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_29
-
- thumb_func_start ContestAICmd_get_move_effect_type
-ContestAICmd_get_move_effect_type: @ 81294F0
- ldr r2, _08129524 @ =gContestMons
- ldr r3, _08129528 @ =gSharedMem + 0x192E4
- ldrb r1, [r3, 0x4]
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r2, _0812952C @ =gContestEffects
- ldr r1, _08129530 @ =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r3, 0x18]
- ldr r1, _08129534 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129524: .4byte gContestMons
-_08129528: .4byte gSharedMem + 0x192E4
-_0812952C: .4byte gContestEffects
-_08129530: .4byte gContestMoves
-_08129534: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_move_effect_type
-
- thumb_func_start ContestAICmd_unk_2B
-ContestAICmd_unk_2B: @ 8129538
- push {lr}
- bl ContestAICmd_get_move_effect_type
- ldr r0, _08129568 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812956C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129570
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129574
- .align 2, 0
-_08129568: .4byte gSharedMem + 0x192E4
-_0812956C: .4byte gAIScriptPtr
-_08129570:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129574:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_2B
-
- thumb_func_start ContestAICmd_unk_2C
-ContestAICmd_unk_2C: @ 8129578
- push {lr}
- bl ContestAICmd_get_move_effect_type
- ldr r0, _081295A8 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081295AC @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081295B0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081295B4
- .align 2, 0
-_081295A8: .4byte gSharedMem + 0x192E4
-_081295AC: .4byte gAIScriptPtr
-_081295B0:
- adds r0, r2, 0x5
- str r0, [r3]
-_081295B4:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_2C
-
thumb_func_start ContestAICmd_check_move_has_highest_appeal
ContestAICmd_check_move_has_highest_appeal: @ 81295B8
push {r4-r7,lr}
diff --git a/include/contest.h b/include/contest.h
index 32da9703a..9a211bbf5 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -104,6 +104,7 @@ void sub_80B0F28(u8);
bool8 Contest_SaveWinner(u8);
u8 sub_80B2C4C(u8, u8);
void Contest_ResetWinners(void);
+s8 Contest_GetMoveExcitement(u16);
// Contest Shared EWRAM
diff --git a/src/contest_ai.c b/src/contest_ai.c
index 124ec6357..3ddac5550 100755
--- a/src/contest_ai.c
+++ b/src/contest_ai.c
@@ -11,6 +11,9 @@ enum
ContestAI_DoNotProcess
};
+extern s16 gUnknown_02038670[];
+extern u16 gSpecialVar_ContestCategory;
+
extern u8 *gAIScriptPtr;
extern u8 *gContestAIs[];
@@ -309,3 +312,223 @@ void ContestAICmd_unk_14(void)
else
gAIScriptPtr += 5;
}
+
+void ContestAICmd_unk_15(void)
+{
+ eContestAI->scriptResult = sContestantStatus[eContestAI->unk41].unk4;
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_16(void)
+{
+ ContestAICmd_unk_15();
+
+ if((s16)eContestAI->scriptResult < (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void ContestAICmd_unk_17(void)
+{
+ ContestAICmd_unk_15();
+
+ if((s16)eContestAI->scriptResult > (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void ContestAICmd_unk_18(void)
+{
+ ContestAICmd_unk_15();
+
+ if((s16)eContestAI->scriptResult == (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void ContestAICmd_unk_19(void)
+{
+ ContestAICmd_unk_15();
+
+ if((s16)eContestAI->scriptResult != (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void ContestAICmd_unk_1A(void)
+{
+ eContestAI->scriptResult = gUnknown_02038670[eContestAI->unk41];
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_1B(void)
+{
+ ContestAICmd_unk_1A();
+
+ if((s16)eContestAI->scriptResult < (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void ContestAICmd_unk_1C(void)
+{
+ ContestAICmd_unk_1A();
+
+ if((s16)eContestAI->scriptResult > (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void ContestAICmd_unk_1D(void)
+{
+ ContestAICmd_unk_1A();
+
+ if((s16)eContestAI->scriptResult == (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void ContestAICmd_unk_1E(void)
+{
+ ContestAICmd_unk_1A();
+
+ if((s16)eContestAI->scriptResult != (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void ContestAICmd_get_contest_type(void)
+{
+ eContestAI->scriptResult = gSpecialVar_ContestCategory;
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_20(void)
+{
+ ContestAICmd_get_contest_type();
+
+ if((s16)eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_21(void)
+{
+ ContestAICmd_get_contest_type();
+
+ if((s16)eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_get_move_excitement(void)
+{
+ eContestAI->scriptResult = Contest_GetMoveExcitement(gContestMons[eContestAI->unk41].moves[eContestAI->unk4]);
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_23(void)
+{
+ ContestAICmd_get_move_excitement();
+
+ if((s16)eContestAI->scriptResult < (s8)gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_24(void)
+{
+ ContestAICmd_get_move_excitement();
+
+ if((s16)eContestAI->scriptResult > (s8)gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_25(void)
+{
+ ContestAICmd_get_move_excitement();
+
+ if((s16)eContestAI->scriptResult == (s8)gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_26(void)
+{
+ ContestAICmd_get_move_excitement();
+
+ if((s16)eContestAI->scriptResult != (s8)gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_get_move_effect(void)
+{
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ eContestAI->scriptResult = gContestMoves[move].effect;
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_28(void)
+{
+ ContestAICmd_get_move_effect();
+
+ if((s16)eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_29(void)
+{
+ ContestAICmd_get_move_effect();
+
+ if((s16)eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_get_move_effect_type(void)
+{
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].effectType;
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_2B(void)
+{
+ ContestAICmd_get_move_effect_type();
+
+ if((s16)eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_2C(void)
+{
+ ContestAICmd_get_move_effect_type();
+
+ if((s16)eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}