diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-13 23:43:36 -0500 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-13 23:43:36 -0500 |
commit | e0f8841fbd434c06bba7471566629e197b896957 (patch) | |
tree | 0690b51653d1726e7723ac27090a080cbf7b6edf | |
parent | 82e7961ec47071b4259fdaea16ee2707907b1143 (diff) |
up to ContestAICmd_unk_52
-rw-r--r-- | asm/contest_ai.s | 759 | ||||
-rwxr-xr-x | src/contest_ai.c | 291 |
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; +} |