summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorProjectRevoTPP <projectrevotpp@hotmail.com>2018-01-12 20:44:49 -0500
committerProjectRevoTPP <projectrevotpp@hotmail.com>2018-01-12 20:44:49 -0500
commitfdeee269791ba9e163f32522d44526b0e2b58f29 (patch)
tree791cbb27a679a3bcc8ae0112d96cafdb59d33870
parent5d393adfcc1a994f9885a2720f3a0bb29afd5a6e (diff)
up to ContestAICmd_unk_14
-rw-r--r--asm/contest_ai.s690
-rw-r--r--include/contest.h87
-rwxr-xr-xsrc/contest_ai.c198
3 files changed, 242 insertions, 733 deletions
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
index d1ae6425b..a0255dff7 100644
--- a/asm/contest_ai.s
+++ b/asm/contest_ai.s
@@ -5,696 +5,6 @@
.text
- thumb_func_start ContestAICmd_unk_00
-ContestAICmd_unk_00: @ 8128AA8
- push {lr}
- ldr r2, _08128AD0 @ =gSharedMem + 0x192E4
- adds r1, r2, 0x5
- ldrb r0, [r2, 0x4]
- adds r1, r0
- ldr r3, _08128AD4 @ =gAIScriptPtr
- ldr r0, [r3]
- ldrb r0, [r0, 0x1]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08128AD8
- movs r1, 0xFF
- b _08128ADE
- .align 2, 0
-_08128AD0: .4byte gSharedMem + 0x192E4
-_08128AD4: .4byte gAIScriptPtr
-_08128AD8:
- cmp r0, 0
- bge _08128ADE
- movs r1, 0
-_08128ADE:
- adds r0, r2, 0x5
- ldrb r2, [r2, 0x4]
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, 0x2
- str r0, [r3]
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_00
-
- thumb_func_start ContestAICmd_get_turn
-ContestAICmd_get_turn: @ 8128AF0
- ldr r1, _08128B04 @ =gSharedMem + 0x192E4
- adds r0, r1, 0
- subs r0, 0xE0
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x18]
- ldr r1, _08128B08 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128B04: .4byte gSharedMem + 0x192E4
-_08128B08: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_turn
-
- thumb_func_start ContestAICmd_unk_02
-ContestAICmd_unk_02: @ 8128B0C
- push {lr}
- bl ContestAICmd_get_turn
- ldr r0, _08128B3C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128B40 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128B44
- 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 _08128B48
- .align 2, 0
-_08128B3C: .4byte gSharedMem + 0x192E4
-_08128B40: .4byte gAIScriptPtr
-_08128B44:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128B48:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_02
-
- thumb_func_start ContestAICmd_unk_03
-ContestAICmd_unk_03: @ 8128B4C
- push {lr}
- bl ContestAICmd_get_turn
- ldr r0, _08128B7C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128B80 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128B84
- 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 _08128B88
- .align 2, 0
-_08128B7C: .4byte gSharedMem + 0x192E4
-_08128B80: .4byte gAIScriptPtr
-_08128B84:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128B88:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_03
-
- thumb_func_start ContestAICmd_unk_04
-ContestAICmd_unk_04: @ 8128B8C
- push {lr}
- bl ContestAICmd_get_turn
- ldr r0, _08128BBC @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128BC0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128BC4
- 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 _08128BC8
- .align 2, 0
-_08128BBC: .4byte gSharedMem + 0x192E4
-_08128BC0: .4byte gAIScriptPtr
-_08128BC4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128BC8:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_04
-
- thumb_func_start ContestAICmd_unk_05
-ContestAICmd_unk_05: @ 8128BCC
- push {lr}
- bl ContestAICmd_get_turn
- ldr r0, _08128BFC @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128C00 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128C04
- 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 _08128C08
- .align 2, 0
-_08128BFC: .4byte gSharedMem + 0x192E4
-_08128C00: .4byte gAIScriptPtr
-_08128C04:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128C08:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_05
-
- thumb_func_start ContestAICmd_get_excitement
-ContestAICmd_get_excitement: @ 8128C0C
- ldr r1, _08128C24 @ =gSharedMem + 0x192E4
- adds r0, r1, 0
- subs r0, 0xE0
- ldrb r0, [r0, 0x13]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x18]
- ldr r1, _08128C28 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128C24: .4byte gSharedMem + 0x192E4
-_08128C28: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_excitement
-
- thumb_func_start ContestAICmd_unk_07
-ContestAICmd_unk_07: @ 8128C2C
- push {lr}
- bl ContestAICmd_get_excitement
- ldr r0, _08128C5C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128C60 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128C64
- 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 _08128C68
- .align 2, 0
-_08128C5C: .4byte gSharedMem + 0x192E4
-_08128C60: .4byte gAIScriptPtr
-_08128C64:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128C68:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_07
-
- thumb_func_start ContestAICmd_unk_08
-ContestAICmd_unk_08: @ 8128C6C
- push {lr}
- bl ContestAICmd_get_excitement
- ldr r0, _08128C9C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128CA0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128CA4
- 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 _08128CA8
- .align 2, 0
-_08128C9C: .4byte gSharedMem + 0x192E4
-_08128CA0: .4byte gAIScriptPtr
-_08128CA4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128CA8:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_08
-
- thumb_func_start ContestAICmd_unk_09
-ContestAICmd_unk_09: @ 8128CAC
- push {lr}
- bl ContestAICmd_get_excitement
- ldr r0, _08128CDC @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128CE0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128CE4
- 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 _08128CE8
- .align 2, 0
-_08128CDC: .4byte gSharedMem + 0x192E4
-_08128CE0: .4byte gAIScriptPtr
-_08128CE4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128CE8:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_09
-
- thumb_func_start ContestAICmd_unk_0A
-ContestAICmd_unk_0A: @ 8128CEC
- push {lr}
- bl ContestAICmd_get_excitement
- ldr r0, _08128D1C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128D20 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128D24
- 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 _08128D28
- .align 2, 0
-_08128D1C: .4byte gSharedMem + 0x192E4
-_08128D20: .4byte gAIScriptPtr
-_08128D24:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128D28:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_0A
-
- thumb_func_start ContestAICmd_get_user_order
-ContestAICmd_get_user_order: @ 8128D2C
- ldr r1, _08128D48 @ =gSharedMem + 0x192E4
- adds r2, r1, 0
- adds r2, 0x41
- adds r0, r1, 0
- subs r0, 0x14
- ldrb r2, [r2]
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1, 0x18]
- ldr r1, _08128D4C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128D48: .4byte gSharedMem + 0x192E4
-_08128D4C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_user_order
-
- thumb_func_start ContestAICmd_unk_0C
-ContestAICmd_unk_0C: @ 8128D50
- push {lr}
- bl ContestAICmd_get_user_order
- ldr r0, _08128D80 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128D84 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128D88
- 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 _08128D8C
- .align 2, 0
-_08128D80: .4byte gSharedMem + 0x192E4
-_08128D84: .4byte gAIScriptPtr
-_08128D88:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128D8C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_0C
-
- thumb_func_start ContestAICmd_unk_0D
-ContestAICmd_unk_0D: @ 8128D90
- push {lr}
- bl ContestAICmd_get_user_order
- ldr r0, _08128DC0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128DC4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128DC8
- 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 _08128DCC
- .align 2, 0
-_08128DC0: .4byte gSharedMem + 0x192E4
-_08128DC4: .4byte gAIScriptPtr
-_08128DC8:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128DCC:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_0D
-
- thumb_func_start ContestAICmd_unk_0E
-ContestAICmd_unk_0E: @ 8128DD0
- push {lr}
- bl ContestAICmd_get_user_order
- ldr r0, _08128E00 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128E04 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128E08
- 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 _08128E0C
- .align 2, 0
-_08128E00: .4byte gSharedMem + 0x192E4
-_08128E04: .4byte gAIScriptPtr
-_08128E08:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128E0C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_0E
-
- thumb_func_start ContestAICmd_unk_0F
-ContestAICmd_unk_0F: @ 8128E10
- push {lr}
- bl ContestAICmd_get_user_order
- ldr r0, _08128E40 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128E44 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128E48
- 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 _08128E4C
- .align 2, 0
-_08128E40: .4byte gSharedMem + 0x192E4
-_08128E44: .4byte gAIScriptPtr
-_08128E48:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128E4C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_0F
-
- thumb_func_start ContestAICmd_get_user_condition_maybe
-ContestAICmd_get_user_condition_maybe: @ 8128E50
- push {r4,lr}
- ldr r4, _08128E88 @ =gSharedMem + 0x192E4
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x84
- adds r0, r1
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _08128E8C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08128E88: .4byte gSharedMem + 0x192E4
-_08128E8C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_user_condition_maybe
-
- thumb_func_start ContestAICmd_unk_11
-ContestAICmd_unk_11: @ 8128E90
- push {lr}
- bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128EC0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128EC4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128EC8
- 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 _08128ECC
- .align 2, 0
-_08128EC0: .4byte gSharedMem + 0x192E4
-_08128EC4: .4byte gAIScriptPtr
-_08128EC8:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128ECC:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_11
-
- thumb_func_start ContestAICmd_unk_12
-ContestAICmd_unk_12: @ 8128ED0
- push {lr}
- bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128F00 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F04 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128F08
- 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 _08128F0C
- .align 2, 0
-_08128F00: .4byte gSharedMem + 0x192E4
-_08128F04: .4byte gAIScriptPtr
-_08128F08:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F0C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_12
-
- thumb_func_start ContestAICmd_unk_13
-ContestAICmd_unk_13: @ 8128F10
- push {lr}
- bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128F40 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F44 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128F48
- 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 _08128F4C
- .align 2, 0
-_08128F40: .4byte gSharedMem + 0x192E4
-_08128F44: .4byte gAIScriptPtr
-_08128F48:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F4C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_13
-
- thumb_func_start ContestAICmd_unk_14
-ContestAICmd_unk_14: @ 8128F50
- push {lr}
- bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128F80 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F84 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128F88
- 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 _08128F8C
- .align 2, 0
-_08128F80: .4byte gSharedMem + 0x192E4
-_08128F84: .4byte gAIScriptPtr
-_08128F88:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F8C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_14
-
thumb_func_start ContestAICmd_unk_15
ContestAICmd_unk_15: @ 8128F90
ldr r2, _08128FB4 @ =gSharedMem + 0x192E4
diff --git a/include/contest.h b/include/contest.h
index a1d2ec9e0..32da9703a 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -78,7 +78,8 @@ struct ContestAIInfo {
/*0x10*/ u8 unk10;
/*0x11*/ u8 filler11[0x3]; // padding?
/*0x14*/ u32 flags;
- /*0x18*/ u8 filler18[0x28];
+ /*0x18*/ u16 scriptResult;
+ /*0x1A*/ u8 filler1A[0x26];
/*0x40*/ u8 unk40;
/*0x41*/ u8 unk41;
/*0x42*/ u8 filler42[0x2]; // padding?
@@ -152,48 +153,48 @@ struct Contest
struct ContestantStatus
{
- s16 appeal1; // move appeal?
- s16 appeal2; // final appeal after end of turn, maybe?
- s16 unk4;
- u16 currMove;
- u16 prevMove;
- u8 moveCategory;
- u8 unkB_0:2;
- u8 unkB_2:2;
- u8 moveRepeatCount:3;
- u8 unkB_7:1; // used a one-time move?
- u8 unkC_0:1;
- u8 unkC_1:2;
- s8 unkD;
- u8 unkE;
- u8 unkF;
- u8 unk10_0:1;
- u8 unk10_1:1;
- u8 unk10_2:1;
- u8 unk10_3:1;
- u8 unk10_4:2;
- u8 unk10_6:2;
- u8 unk11_0:2;
- u8 unk11_2:1;
- u8 unk11_3:1;
- u8 unk11_4:1;
- u8 unk11_5:1;
- u8 unk12;
- u8 unk13; // status action?
- u8 unk14;
- u8 disappointedRepeat:1;
- u8 unk15_1:1;
- u8 unk15_2:1;
- u8 unk15_3:1;
- u8 unk15_4:1;
- u8 unk15_5:1;
- u8 unk15_6:1;
- u8 unk16;
- u8 unk17;
- u8 unk18;
- u8 unk19; // turn position
- u8 attentionLevel; // How much the Pokemon "stood out"
- u8 unk1B;
+ /*0x00*/ s16 appeal1; // move appeal?
+ /*0x02*/ s16 appeal2; // final appeal after end of turn, maybe?
+ /*0x04*/ s16 unk4;
+ /*0x06*/ u16 currMove;
+ /*0x08*/ u16 prevMove;
+ /*0x0A*/ u8 moveCategory;
+ /*0x0B*/ u8 unkB_0:2;
+ u8 unkB_2:2;
+ u8 moveRepeatCount:3;
+ u8 unkB_7:1; // used a one-time move?
+ /*0x0C*/ u8 unkC_0:1;
+ u8 unkC_1:2;
+ /*0x0D*/ s8 unkD;
+ /*0x0E*/ u8 unkE;
+ /*0x0F*/ u8 unkF;
+ /*0x10*/ u8 unk10_0:1;
+ u8 unk10_1:1;
+ u8 unk10_2:1;
+ u8 unk10_3:1;
+ u8 unk10_4:2;
+ u8 unk10_6:2;
+ /*0x11*/ u8 unk11_0:2;
+ u8 unk11_2:1;
+ u8 unk11_3:1;
+ u8 unk11_4:1;
+ u8 unk11_5:1;
+ /*0x12*/ u8 unk12;
+ /*0x13*/ u8 unk13; // status action?
+ /*0x14*/ u8 unk14;
+ /*0x15*/ u8 disappointedRepeat:1;
+ u8 unk15_1:1;
+ u8 unk15_2:1;
+ u8 unk15_3:1;
+ u8 unk15_4:1;
+ u8 unk15_5:1;
+ u8 unk15_6:1;
+ /*0x16*/ u8 unk16;
+ /*0x17*/ u8 unk17;
+ /*0x18*/ u8 unk18;
+ /*0x19*/ u8 unk19; // turn position
+ /*0x1A*/ u8 attentionLevel; // How much the Pokemon "stood out"
+ /*0x1B*/ u8 unk1B;
};
struct UnknownContestStruct3
diff --git a/src/contest_ai.c b/src/contest_ai.c
index 9dfa6c2b9..124ec6357 100755
--- a/src/contest_ai.c
+++ b/src/contest_ai.c
@@ -111,3 +111,201 @@ u8 sub_8128A7C(u8 var)
return i;
}
+
+void ContestAICmd_unk_00(void)
+{
+ s16 score = eContestAI->unk5[eContestAI->unk4] + (s8)gAIScriptPtr[1];
+
+ if (score > 255)
+ score = 255;
+ else if (score < 0)
+ score = 0;
+
+ eContestAI->unk5[eContestAI->unk4] = score;
+
+ gAIScriptPtr += 2;
+}
+
+void ContestAICmd_get_turn(void)
+{
+ eContestAI->scriptResult = sContest.turnNumber;
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_02(void)
+{
+ ContestAICmd_get_turn();
+
+ if((s16)eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_03(void)
+{
+ ContestAICmd_get_turn();
+
+ if((s16)eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_04(void)
+{
+ ContestAICmd_get_turn();
+
+ if((s16)eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_05(void)
+{
+ ContestAICmd_get_turn();
+
+ if((s16)eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_get_excitement(void)
+{
+ eContestAI->scriptResult = sContest.applauseLevel;
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_07(void)
+{
+ ContestAICmd_get_excitement();
+
+ if((s16)eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_08(void)
+{
+ ContestAICmd_get_excitement();
+
+ if((s16)eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_09(void)
+{
+ ContestAICmd_get_excitement();
+
+ if((s16)eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_0A(void)
+{
+ ContestAICmd_get_excitement();
+
+ if((s16)eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_get_user_order(void)
+{
+ eContestAI->scriptResult = shared192D0.unk0[eContestAI->unk41];
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_0C(void)
+{
+ ContestAICmd_get_user_order();
+
+ if((s16)eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_0D(void)
+{
+ ContestAICmd_get_user_order();
+
+ if((s16)eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_0E(void)
+{
+ ContestAICmd_get_user_order();
+
+ if((s16)eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_0F(void)
+{
+ ContestAICmd_get_user_order();
+
+ if((s16)eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_get_user_condition_maybe(void)
+{
+ eContestAI->scriptResult = sContestantStatus[eContestAI->unk41].unkD / 10;
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_11(void)
+{
+ ContestAICmd_get_user_condition_maybe();
+
+ if((s16)eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_12(void)
+{
+ ContestAICmd_get_user_condition_maybe();
+
+ if((s16)eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_13(void)
+{
+ ContestAICmd_get_user_condition_maybe();
+
+ if((s16)eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_14(void)
+{
+ ContestAICmd_get_user_condition_maybe();
+
+ if((s16)eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}