summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorProjectRevoTPP <projectrevotpp@hotmail.com>2018-01-13 23:43:36 -0500
committerProjectRevoTPP <projectrevotpp@hotmail.com>2018-01-13 23:43:36 -0500
commite0f8841fbd434c06bba7471566629e197b896957 (patch)
tree0690b51653d1726e7723ac27090a080cbf7b6edf
parent82e7961ec47071b4259fdaea16ee2707907b1143 (diff)
up to ContestAICmd_unk_52
-rw-r--r--asm/contest_ai.s759
-rwxr-xr-xsrc/contest_ai.c291
2 files changed, 214 insertions, 836 deletions
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
index e659b4776..dc102c346 100644
--- a/asm/contest_ai.s
+++ b/asm/contest_ai.s
@@ -5,765 +5,6 @@
.text
- thumb_func_start ContestAICmd_check_combo_starter
-ContestAICmd_check_combo_starter: @ 8129B44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r3, _08129BAC @ =gContestMons
- ldr r2, _08129BB0 @ =gSharedMem + 0x192E4
- ldrb r1, [r2, 0x4]
- lsls r1, 1
- adds r2, 0x41
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r3, 0x1E
- adds r1, r3
- ldrh r6, [r1]
- movs r4, 0
- mov r8, r2
- adds r7, r3, 0
-_08129B68:
- lsls r0, r4, 1
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r7
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129B8A
- adds r1, r0, 0
- adds r0, r6, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08129B94
-_08129B8A:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08129B68
- cmp r5, 0
- beq _08129B96
-_08129B94:
- movs r5, 0x1
-_08129B96:
- ldr r0, _08129BB0 @ =gSharedMem + 0x192E4
- strh r5, [r0, 0x18]
- ldr r1, _08129BB4 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08129BAC: .4byte gContestMons
-_08129BB0: .4byte gSharedMem + 0x192E4
-_08129BB4: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_check_combo_starter
-
- thumb_func_start ContestAICmd_unk_41
-ContestAICmd_unk_41: @ 8129BB8
- push {lr}
- bl ContestAICmd_check_combo_starter
- ldr r0, _08129BE4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129BEC
- ldr r3, _08129BE8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129BF4
- .align 2, 0
-_08129BE4: .4byte gSharedMem + 0x192E4
-_08129BE8: .4byte gAIScriptPtr
-_08129BEC:
- ldr r1, _08129BF8 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129BF4:
- pop {r0}
- bx r0
- .align 2, 0
-_08129BF8: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_41
-
- thumb_func_start ContestAICmd_unk_42
-ContestAICmd_unk_42: @ 8129BFC
- push {lr}
- bl ContestAICmd_check_combo_starter
- ldr r0, _08129C28 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129C30
- ldr r3, _08129C2C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129C38
- .align 2, 0
-_08129C28: .4byte gSharedMem + 0x192E4
-_08129C2C: .4byte gAIScriptPtr
-_08129C30:
- ldr r1, _08129C3C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129C38:
- pop {r0}
- bx r0
- .align 2, 0
-_08129C3C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_42
-
- thumb_func_start ContestAICmd_check_combo_finisher
-ContestAICmd_check_combo_finisher: @ 8129C40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r3, _08129CA8 @ =gContestMons
- ldr r2, _08129CAC @ =gSharedMem + 0x192E4
- ldrb r1, [r2, 0x4]
- lsls r1, 1
- adds r2, 0x41
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r3, 0x1E
- adds r1, r3
- ldrh r6, [r1]
- movs r4, 0
- mov r8, r2
- adds r7, r3, 0
-_08129C64:
- lsls r0, r4, 1
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r7
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129C84
- adds r1, r6, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08129C8E
-_08129C84:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08129C64
- cmp r5, 0
- beq _08129C90
-_08129C8E:
- movs r5, 0x1
-_08129C90:
- ldr r0, _08129CAC @ =gSharedMem + 0x192E4
- strh r5, [r0, 0x18]
- ldr r1, _08129CB0 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08129CA8: .4byte gContestMons
-_08129CAC: .4byte gSharedMem + 0x192E4
-_08129CB0: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_check_combo_finisher
-
- thumb_func_start ContestAICmd_unk_44
-ContestAICmd_unk_44: @ 8129CB4
- push {lr}
- bl ContestAICmd_check_combo_finisher
- ldr r0, _08129CE0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129CE8
- ldr r3, _08129CE4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129CF0
- .align 2, 0
-_08129CE0: .4byte gSharedMem + 0x192E4
-_08129CE4: .4byte gAIScriptPtr
-_08129CE8:
- ldr r1, _08129CF4 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129CF0:
- pop {r0}
- bx r0
- .align 2, 0
-_08129CF4: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_44
-
- thumb_func_start ContestAICmd_unk_45
-ContestAICmd_unk_45: @ 8129CF8
- push {lr}
- bl ContestAICmd_check_combo_finisher
- ldr r0, _08129D24 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129D2C
- ldr r3, _08129D28 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129D34
- .align 2, 0
-_08129D24: .4byte gSharedMem + 0x192E4
-_08129D28: .4byte gAIScriptPtr
-_08129D2C:
- ldr r1, _08129D38 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129D34:
- pop {r0}
- bx r0
- .align 2, 0
-_08129D38: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_45
-
- thumb_func_start ContestAICmd_check_would_finish_combo
-ContestAICmd_check_would_finish_combo: @ 8129D3C
- push {r4,r5,lr}
- movs r5, 0
- ldr r3, _08129D8C @ =gContestMons
- ldr r4, _08129D90 @ =gSharedMem + 0x192E4
- ldrb r0, [r4, 0x4]
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x41
- ldrb r2, [r1]
- lsls r1, r2, 6
- adds r0, r1
- adds r3, 0x1E
- adds r0, r3
- ldrh r3, [r0]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x84
- adds r1, r0, r1
- ldrh r0, [r1, 0x8]
- cmp r0, 0
- beq _08129D74
- adds r1, r3, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
-_08129D74:
- cmp r5, 0
- beq _08129D7A
- movs r5, 0x1
-_08129D7A:
- strh r5, [r4, 0x18]
- ldr r1, _08129D94 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08129D8C: .4byte gContestMons
-_08129D90: .4byte gSharedMem + 0x192E4
-_08129D94: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_check_would_finish_combo
-
- thumb_func_start ContestAICmd_unk_47
-ContestAICmd_unk_47: @ 8129D98
- push {lr}
- bl ContestAICmd_check_would_finish_combo
- ldr r0, _08129DC4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129DCC
- ldr r3, _08129DC8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129DD4
- .align 2, 0
-_08129DC4: .4byte gSharedMem + 0x192E4
-_08129DC8: .4byte gAIScriptPtr
-_08129DCC:
- ldr r1, _08129DD8 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129DD4:
- pop {r0}
- bx r0
- .align 2, 0
-_08129DD8: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_47
-
- thumb_func_start ContestAICmd_unk_48
-ContestAICmd_unk_48: @ 8129DDC
- push {lr}
- bl ContestAICmd_check_would_finish_combo
- ldr r0, _08129E08 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129E10
- ldr r3, _08129E0C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129E18
- .align 2, 0
-_08129E08: .4byte gSharedMem + 0x192E4
-_08129E0C: .4byte gAIScriptPtr
-_08129E10:
- ldr r1, _08129E1C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129E18:
- pop {r0}
- bx r0
- .align 2, 0
-_08129E1C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_48
-
- thumb_func_start ContestAICmd_get_condition
-ContestAICmd_get_condition: @ 8129E20
- push {r4,r5,lr}
- ldr r4, _08129E5C @ =gAIScriptPtr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08129E60 @ =gSharedMem + 0x192E4
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r5, 0
- subs r0, 0x84
- adds r1, r0
- movs r0, 0xD
- ldrsb r0, [r1, r0]
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x18]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08129E5C: .4byte gAIScriptPtr
-_08129E60: .4byte gSharedMem + 0x192E4
- thumb_func_end ContestAICmd_get_condition
-
- thumb_func_start ContestAICmd_unk_4A
-ContestAICmd_unk_4A: @ 8129E64
- push {lr}
- bl ContestAICmd_get_condition
- ldr r0, _08129E94 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129E98 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129E9C
- 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 _08129EA0
- .align 2, 0
-_08129E94: .4byte gSharedMem + 0x192E4
-_08129E98: .4byte gAIScriptPtr
-_08129E9C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129EA0:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_4A
-
- thumb_func_start ContestAICmd_unk_4B
-ContestAICmd_unk_4B: @ 8129EA4
- push {lr}
- bl ContestAICmd_get_condition
- ldr r0, _08129ED4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129ED8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129EDC
- 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 _08129EE0
- .align 2, 0
-_08129ED4: .4byte gSharedMem + 0x192E4
-_08129ED8: .4byte gAIScriptPtr
-_08129EDC:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129EE0:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_4B
-
- thumb_func_start ContestAICmd_unk_4C
-ContestAICmd_unk_4C: @ 8129EE4
- push {lr}
- bl ContestAICmd_get_condition
- ldr r0, _08129F14 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129F18 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129F1C
- 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 _08129F20
- .align 2, 0
-_08129F14: .4byte gSharedMem + 0x192E4
-_08129F18: .4byte gAIScriptPtr
-_08129F1C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129F20:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_4C
-
- thumb_func_start ContestAICmd_unk_4D
-ContestAICmd_unk_4D: @ 8129F24
- push {lr}
- bl ContestAICmd_get_condition
- ldr r0, _08129F54 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129F58 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08129F5C
- 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 _08129F60
- .align 2, 0
-_08129F54: .4byte gSharedMem + 0x192E4
-_08129F58: .4byte gAIScriptPtr
-_08129F5C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129F60:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_4D
-
- thumb_func_start ContestAICmd_get_used_combo_starter
-ContestAICmd_get_used_combo_starter: @ 8129F64
- push {r4-r6,lr}
- movs r6, 0
- ldr r5, _08129FAC @ =gAIScriptPtr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B214C
- lsls r0, 24
- cmp r0, 0
- beq _08129F9C
- ldr r2, _08129FB0 @ =gContestMoves
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _08129FB4 @ =gSharedMem + 0x19260
- adds r0, r1
- ldrh r0, [r0, 0x8]
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x2]
- negs r0, r1
- orrs r0, r1
- lsrs r6, r0, 31
-_08129F9C:
- ldr r0, _08129FB8 @ =gSharedMem + 0x192E4
- strh r6, [r0, 0x18]
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08129FAC: .4byte gAIScriptPtr
-_08129FB0: .4byte gContestMoves
-_08129FB4: .4byte gSharedMem + 0x19260
-_08129FB8: .4byte gSharedMem + 0x192E4
- thumb_func_end ContestAICmd_get_used_combo_starter
-
- thumb_func_start ContestAICmd_unk_4F
-ContestAICmd_unk_4F: @ 8129FBC
- push {lr}
- bl ContestAICmd_get_used_combo_starter
- ldr r0, _08129FEC @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129FF0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129FF4
- 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 _08129FF8
- .align 2, 0
-_08129FEC: .4byte gSharedMem + 0x192E4
-_08129FF0: .4byte gAIScriptPtr
-_08129FF4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129FF8:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_4F
-
- thumb_func_start ContestAICmd_unk_50
-ContestAICmd_unk_50: @ 8129FFC
- push {lr}
- bl ContestAICmd_get_used_combo_starter
- ldr r0, _0812A02C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A030 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _0812A034
- 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 _0812A038
- .align 2, 0
-_0812A02C: .4byte gSharedMem + 0x192E4
-_0812A030: .4byte gAIScriptPtr
-_0812A034:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A038:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_50
-
- thumb_func_start ContestAICmd_unk_51
-ContestAICmd_unk_51: @ 812A03C
- push {lr}
- bl ContestAICmd_get_used_combo_starter
- ldr r0, _0812A06C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A070 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A074
- 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 _0812A078
- .align 2, 0
-_0812A06C: .4byte gSharedMem + 0x192E4
-_0812A070: .4byte gAIScriptPtr
-_0812A074:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A078:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_51
-
- thumb_func_start ContestAICmd_unk_52
-ContestAICmd_unk_52: @ 812A07C
- push {lr}
- bl ContestAICmd_get_used_combo_starter
- ldr r0, _0812A0AC @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A0B0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A0B4
- 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 _0812A0B8
- .align 2, 0
-_0812A0AC: .4byte gSharedMem + 0x192E4
-_0812A0B0: .4byte gAIScriptPtr
-_0812A0B4:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A0B8:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_52
-
thumb_func_start ContestAICmd_check_can_participate
ContestAICmd_check_can_participate: @ 812A0BC
push {lr}
diff --git a/src/contest_ai.c b/src/contest_ai.c
index a62a69194..7c704be0a 100755
--- a/src/contest_ai.c
+++ b/src/contest_ai.c
@@ -3,6 +3,10 @@
#include "random.h"
#include "ewram.h"
+extern u8 AreMovesContestCombo(u16, u16);
+extern bool8 sub_8128A7C(u8);
+extern bool8 sub_80B214C(u8);
+
enum
{
ContestAI_SettingUp,
@@ -745,9 +749,6 @@ void ContestAICmd_unk_3F(void)
gAIScriptPtr += 5;
}
-extern u8 AreMovesContestCombo(u16, u16);
-
-/*
void ContestAICmd_check_combo_starter(void)
{
u8 result = 0;
@@ -756,85 +757,221 @@ void ContestAICmd_check_combo_starter(void)
for(i = 0; i < 4; i++)
{
- u16 newMove = gContestMons[eContestAI->unk41].moves[i];
- u16 isCombo = AreMovesContestCombo(move, gContestMons[eContestAI->unk41].moves[i]);
- if(newMove && isCombo)
+ if (gContestMons[eContestAI->unk41].moves[i])
{
- result = 1;
- break;
+ result = AreMovesContestCombo(move, gContestMons[eContestAI->unk41].moves[i]);
+ if (result)
+ {
+ result = 1;
+ break;
+ }
}
- if(isCombo) // dumb double r5 check?
+ }
+
+ if (result)
+ result = 1;
+
+ eContestAI->scriptResult = result;
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_41(void)
+{
+ ContestAICmd_check_combo_starter();
+
+ if((s16)eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+void ContestAICmd_unk_42(void)
+{
+ ContestAICmd_check_combo_starter();
+
+ if((s16)eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+void ContestAICmd_check_combo_finisher(void)
+{
+ u8 result = 0;
+ int i;
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ for(i = 0; i < 4; i++)
+ {
+ if (gContestMons[eContestAI->unk41].moves[i])
{
- result = 1;
- break;
+ result = AreMovesContestCombo(gContestMons[eContestAI->unk41].moves[i], move);
+ if (result)
+ {
+ result = 1;
+ break;
+ }
}
}
+ if (result)
+ result = 1;
+
eContestAI->scriptResult = result;
gAIScriptPtr += 1;
-}*/
-
-/*
- thumb_func_start ContestAICmd_check_combo_starter
-ContestAICmd_check_combo_starter: @ 8129B44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r3, _08129BAC @ =gContestMons
- ldr r2, _08129BB0 @ =gSharedMem + 0x192E4
- ldrb r1, [r2, 0x4]
- lsls r1, 1
- adds r2, 0x41
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r3, 0x1E
- adds r1, r3
- ldrh r6, [r1]
- movs r4, 0
- mov r8, r2
- adds r7, r3, 0
-_08129B68:
- lsls r0, r4, 1
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r7
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129B8A
- adds r1, r0, 0
- adds r0, r6, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08129B94
-_08129B8A:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08129B68
- cmp r5, 0
- beq _08129B96
-_08129B94:
- movs r5, 0x1
-_08129B96:
- ldr r0, _08129BB0 @ =gSharedMem + 0x192E4
- strh r5, [r0, 0x18]
- ldr r1, _08129BB4 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08129BAC: .4byte gContestMons
-_08129BB0: .4byte gSharedMem + 0x192E4
-_08129BB4: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_check_combo_starter
-*/
+}
+
+void ContestAICmd_unk_44(void)
+{
+ ContestAICmd_check_combo_finisher();
+
+ if((s16)eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+void ContestAICmd_unk_45(void)
+{
+ ContestAICmd_check_combo_finisher();
+
+ if((s16)eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+void ContestAICmd_check_would_finish_combo(void)
+{
+ u8 result = 0;
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ if(sContestantStatus[eContestAI->unk41].prevMove)
+ result = AreMovesContestCombo(sContestantStatus[eContestAI->unk41].prevMove, move);
+
+ if(result)
+ result = 1;
+
+ eContestAI->scriptResult = result;
+ gAIScriptPtr += 1;
+}
+
+void ContestAICmd_unk_47(void)
+{
+ ContestAICmd_check_would_finish_combo();
+
+ if((s16)eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+void ContestAICmd_unk_48(void)
+{
+ ContestAICmd_check_would_finish_combo();
+
+ if((s16)eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+void ContestAICmd_get_condition(void)
+{
+ int var = sub_8128A7C(gAIScriptPtr[1]);
+
+ eContestAI->scriptResult = sContestantStatus[var].unkD / 10;
+ gAIScriptPtr += 2;
+}
+
+void ContestAICmd_unk_4A(void)
+{
+ ContestAICmd_get_condition();
+
+ if((s16)eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_4B(void)
+{
+ ContestAICmd_get_condition();
+
+ if((s16)eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_4C(void)
+{
+ ContestAICmd_get_condition();
+
+ if((s16)eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_4D(void)
+{
+ ContestAICmd_get_condition();
+
+ if((s16)eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_get_used_combo_starter(void)
+{
+ u16 result = 0;
+ u8 var = sub_8128A7C(gAIScriptPtr[1]);
+
+ if(sub_80B214C(var))
+ result = gContestMoves[sContestantStatus[var].prevMove].comboStarterId ? 1 : 0;
+
+ eContestAI->scriptResult = result;
+ gAIScriptPtr += 2;
+}
+
+void ContestAICmd_unk_4F(void)
+{
+ ContestAICmd_get_used_combo_starter();
+
+ if((s16)eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_50(void)
+{
+ ContestAICmd_get_used_combo_starter();
+
+ if((s16)eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_51(void)
+{
+ ContestAICmd_get_used_combo_starter();
+
+ if((s16)eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+void ContestAICmd_unk_52(void)
+{
+ ContestAICmd_get_used_combo_starter();
+
+ if((s16)eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}