diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-13 01:11:13 -0500 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-13 01:11:13 -0500 |
commit | 39575a7e6c15bc0d69f990fe1b9c3492f684c15e (patch) | |
tree | 5c8e93c882e736b0d36162817408640d46787ea6 | |
parent | e33a9b2b535b401a47455065dd4cb9364ed9c9f7 (diff) |
up to ContestAICmd_unk_3F
-rw-r--r-- | asm/contest_ai.s | 765 | ||||
-rwxr-xr-x | src/contest_ai.c | 212 |
2 files changed, 212 insertions, 765 deletions
diff --git a/asm/contest_ai.s b/asm/contest_ai.s index 566f9c0ab..e659b4776 100644 --- a/asm/contest_ai.s +++ b/asm/contest_ai.s @@ -5,771 +5,6 @@ .text - thumb_func_start ContestAICmd_check_move_has_highest_appeal -ContestAICmd_check_move_has_highest_appeal: @ 81295B8 - push {r4-r7,lr} - ldr r2, _08129610 @ =gContestMons - ldr r3, _08129614 @ =gSharedMem + 0x192E4 - ldrb r0, [r3, 0x4] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x41 - ldrb r1, [r1] - lsls r1, 6 - adds r0, r1 - adds r2, 0x1E - adds r0, r2 - ldrh r0, [r0] - ldr r4, _08129618 @ =gContestEffects - ldr r5, _0812961C @ =gContestMoves - lsls r0, 3 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldrb r7, [r0, 0x1] - movs r6, 0 - ldr r0, _08129620 @ =gAIScriptPtr - mov r12, r0 - adds r1, r2 -_081295EA: - ldrh r0, [r1] - cmp r0, 0 - beq _08129600 - lsls r0, 3 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x1] - cmp r7, r0 - bcc _08129608 -_08129600: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _081295EA -_08129608: - cmp r6, 0x4 - bne _08129624 - movs r0, 0x1 - b _08129626 - .align 2, 0 -_08129610: .4byte gContestMons -_08129614: .4byte gSharedMem + 0x192E4 -_08129618: .4byte gContestEffects -_0812961C: .4byte gContestMoves -_08129620: .4byte gAIScriptPtr -_08129624: - movs r0, 0 -_08129626: - strh r0, [r3, 0x18] - mov r1, r12 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_check_move_has_highest_appeal - - thumb_func_start ContestAICmd_unk_2E -ContestAICmd_unk_2E: @ 8129638 - push {lr} - bl ContestAICmd_check_move_has_highest_appeal - ldr r0, _08129664 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812966C - ldr r3, _08129668 @ =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 _08129674 - .align 2, 0 -_08129664: .4byte gSharedMem + 0x192E4 -_08129668: .4byte gAIScriptPtr -_0812966C: - ldr r1, _08129678 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08129674: - pop {r0} - bx r0 - .align 2, 0 -_08129678: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_2E - - thumb_func_start ContestAICmd_unk_2F -ContestAICmd_unk_2F: @ 812967C - push {r4-r7,lr} - ldr r2, _081296D4 @ =gContestMons - ldr r3, _081296D8 @ =gSharedMem + 0x192E4 - ldrb r0, [r3, 0x4] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x41 - ldrb r1, [r1] - lsls r1, 6 - adds r0, r1 - adds r2, 0x1E - adds r0, r2 - ldrh r0, [r0] - ldr r4, _081296DC @ =gContestEffects - ldr r5, _081296E0 @ =gContestMoves - lsls r0, 3 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldrb r7, [r0, 0x2] - movs r6, 0 - ldr r0, _081296E4 @ =gAIScriptPtr - mov r12, r0 - adds r1, r2 -_081296AE: - ldrh r0, [r1] - cmp r0, 0 - beq _081296C4 - lsls r0, 3 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x2] - cmp r7, r0 - bcc _081296CC -_081296C4: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _081296AE -_081296CC: - cmp r6, 0x4 - bne _081296E8 - movs r0, 0x1 - b _081296EA - .align 2, 0 -_081296D4: .4byte gContestMons -_081296D8: .4byte gSharedMem + 0x192E4 -_081296DC: .4byte gContestEffects -_081296E0: .4byte gContestMoves -_081296E4: .4byte gAIScriptPtr -_081296E8: - movs r0, 0 -_081296EA: - strh r0, [r3, 0x18] - mov r1, r12 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_2F - - thumb_func_start ContestAICmd_unk_30 -ContestAICmd_unk_30: @ 81296FC - push {lr} - bl ContestAICmd_unk_2F - ldr r0, _08129728 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08129730 - ldr r3, _0812972C @ =gAIScriptPtr - ldr r2, [r3] - 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 _08129738 - .align 2, 0 -_08129728: .4byte gSharedMem + 0x192E4 -_0812972C: .4byte gAIScriptPtr -_08129730: - ldr r1, _0812973C @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08129738: - pop {r0} - bx r0 - .align 2, 0 -_0812973C: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_30 - - thumb_func_start ContestAICmd_unk_31 -ContestAICmd_unk_31: @ 8129740 - push {r4,lr} - ldr r2, _08129784 @ =gContestMons - ldr r4, _08129788 @ =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] - ldr r2, _0812978C @ =gContestEffects - ldr r1, _08129790 @ =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x18] - ldr r1, _08129794 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08129784: .4byte gContestMons -_08129788: .4byte gSharedMem + 0x192E4 -_0812978C: .4byte gContestEffects -_08129790: .4byte gContestMoves -_08129794: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_31 - - thumb_func_start ContestAICmd_unk_32 -ContestAICmd_unk_32: @ 8129798 - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _081297C8 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _081297CC @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _081297D0 - 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 _081297D4 - .align 2, 0 -_081297C8: .4byte gSharedMem + 0x192E4 -_081297CC: .4byte gAIScriptPtr -_081297D0: - adds r0, r2, 0x5 - str r0, [r3] -_081297D4: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_32 - - thumb_func_start ContestAICmd_unk_33 -ContestAICmd_unk_33: @ 81297D8 - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _08129808 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812980C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08129810 - 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 _08129814 - .align 2, 0 -_08129808: .4byte gSharedMem + 0x192E4 -_0812980C: .4byte gAIScriptPtr -_08129810: - adds r0, r2, 0x5 - str r0, [r3] -_08129814: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_33 - - thumb_func_start ContestAICmd_unk_34 -ContestAICmd_unk_34: @ 8129818 - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _08129848 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812984C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08129850 - 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 _08129854 - .align 2, 0 -_08129848: .4byte gSharedMem + 0x192E4 -_0812984C: .4byte gAIScriptPtr -_08129850: - adds r0, r2, 0x5 - str r0, [r3] -_08129854: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_34 - - thumb_func_start ContestAICmd_unk_35 -ContestAICmd_unk_35: @ 8129858 - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _08129888 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812988C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08129890 - 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 _08129894 - .align 2, 0 -_08129888: .4byte gSharedMem + 0x192E4 -_0812988C: .4byte gAIScriptPtr -_08129890: - adds r0, r2, 0x5 - str r0, [r3] -_08129894: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_35 - - thumb_func_start ContestAICmd_unk_36 -ContestAICmd_unk_36: @ 8129898 - push {r4,lr} - ldr r2, _081298DC @ =gContestMons - ldr r4, _081298E0 @ =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] - ldr r2, _081298E4 @ =gContestEffects - ldr r1, _081298E8 @ =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x18] - ldr r1, _081298EC @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081298DC: .4byte gContestMons -_081298E0: .4byte gSharedMem + 0x192E4 -_081298E4: .4byte gContestEffects -_081298E8: .4byte gContestMoves -_081298EC: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_36 - - thumb_func_start ContestAICmd_unk_37 -ContestAICmd_unk_37: @ 81298F0 - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _08129920 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129924 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08129928 - 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 _0812992C - .align 2, 0 -_08129920: .4byte gSharedMem + 0x192E4 -_08129924: .4byte gAIScriptPtr -_08129928: - adds r0, r2, 0x5 - str r0, [r3] -_0812992C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_37 - - thumb_func_start ContestAICmd_unk_38 -ContestAICmd_unk_38: @ 8129930 - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _08129960 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129964 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08129968 - 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 _0812996C - .align 2, 0 -_08129960: .4byte gSharedMem + 0x192E4 -_08129964: .4byte gAIScriptPtr -_08129968: - adds r0, r2, 0x5 - str r0, [r3] -_0812996C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_38 - - thumb_func_start ContestAICmd_unk_39 -ContestAICmd_unk_39: @ 8129970 - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _081299A0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _081299A4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _081299A8 - 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 _081299AC - .align 2, 0 -_081299A0: .4byte gSharedMem + 0x192E4 -_081299A4: .4byte gAIScriptPtr -_081299A8: - adds r0, r2, 0x5 - str r0, [r3] -_081299AC: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_39 - - thumb_func_start ContestAICmd_unk_3A -ContestAICmd_unk_3A: @ 81299B0 - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _081299E0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _081299E4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _081299E8 - 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 _081299EC - .align 2, 0 -_081299E0: .4byte gSharedMem + 0x192E4 -_081299E4: .4byte gAIScriptPtr -_081299E8: - adds r0, r2, 0x5 - str r0, [r3] -_081299EC: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_3A - - thumb_func_start ContestAICmd_get_move_used_count -ContestAICmd_get_move_used_count: @ 81299F0 - push {r4,lr} - ldr r3, _08129A20 @ =gContestMons - ldr r4, _08129A24 @ =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 r0, r1 - ldrh r1, [r0, 0x8] - cmp r3, r1 - beq _08129A28 - movs r0, 0 - b _08129A30 - .align 2, 0 -_08129A20: .4byte gContestMons -_08129A24: .4byte gSharedMem + 0x192E4 -_08129A28: - ldrb r0, [r0, 0xB] - lsls r0, 25 - lsrs r0, 29 - adds r0, 0x1 -_08129A30: - strh r0, [r4, 0x18] - ldr r1, _08129A40 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08129A40: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_get_move_used_count - - thumb_func_start ContestAICmd_unk_3C -ContestAICmd_unk_3C: @ 8129A44 - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _08129A74 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129A78 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08129A7C - 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 _08129A80 - .align 2, 0 -_08129A74: .4byte gSharedMem + 0x192E4 -_08129A78: .4byte gAIScriptPtr -_08129A7C: - adds r0, r2, 0x5 - str r0, [r3] -_08129A80: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_3C - - thumb_func_start ContestAICmd_unk_3D -ContestAICmd_unk_3D: @ 8129A84 - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _08129AB4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129AB8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08129ABC - 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 _08129AC0 - .align 2, 0 -_08129AB4: .4byte gSharedMem + 0x192E4 -_08129AB8: .4byte gAIScriptPtr -_08129ABC: - adds r0, r2, 0x5 - str r0, [r3] -_08129AC0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_3D - - thumb_func_start ContestAICmd_unk_3E -ContestAICmd_unk_3E: @ 8129AC4 - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _08129AF4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129AF8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08129AFC - 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 _08129B00 - .align 2, 0 -_08129AF4: .4byte gSharedMem + 0x192E4 -_08129AF8: .4byte gAIScriptPtr -_08129AFC: - adds r0, r2, 0x5 - str r0, [r3] -_08129B00: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_3E - - thumb_func_start ContestAICmd_unk_3F -ContestAICmd_unk_3F: @ 8129B04 - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _08129B34 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129B38 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08129B3C - 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 _08129B40 - .align 2, 0 -_08129B34: .4byte gSharedMem + 0x192E4 -_08129B38: .4byte gAIScriptPtr -_08129B3C: - adds r0, r2, 0x5 - str r0, [r3] -_08129B40: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_3F - thumb_func_start ContestAICmd_check_combo_starter ContestAICmd_check_combo_starter: @ 8129B44 push {r4-r7,lr} diff --git a/src/contest_ai.c b/src/contest_ai.c index 3ddac5550..2fce17cbe 100755 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -532,3 +532,215 @@ void ContestAICmd_unk_2C(void) else gAIScriptPtr += 5; } + +void ContestAICmd_check_move_has_highest_appeal(void) +{ + int i; + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u8 appeal = gContestEffects[gContestMoves[move].effect].appeal; + + for(i = 0; i < 4; i++) + { + u16 newMove = gContestMons[eContestAI->unk41].moves[i]; + if(newMove != 0 && appeal < gContestEffects[gContestMoves[newMove].effect].appeal) + break; + } + + if(i == 4) + eContestAI->scriptResult = TRUE; + else + eContestAI->scriptResult = FALSE; + + gAIScriptPtr += 1; +} + +void ContestAICmd_unk_2E(void) +{ + ContestAICmd_check_move_has_highest_appeal(); + + if((s16)eContestAI->scriptResult != FALSE) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); + else + gAIScriptPtr += 4; +} + +void ContestAICmd_unk_2F(void) +{ + int i; + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + u8 jam = gContestEffects[gContestMoves[move].effect].jam; + + for(i = 0; i < 4; i++) + { + u16 newMove = gContestMons[eContestAI->unk41].moves[i]; + if(newMove != 0 && jam < gContestEffects[gContestMoves[newMove].effect].jam) + break; + } + + if(i == 4) + eContestAI->scriptResult = TRUE; + else + eContestAI->scriptResult = FALSE; + + gAIScriptPtr += 1; +} + +void ContestAICmd_unk_30(void) +{ + ContestAICmd_unk_2F(); + + if((s16)eContestAI->scriptResult != FALSE) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_unk_31(void) +{ + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + + eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].appeal / 10; + gAIScriptPtr += 1; +} + +void ContestAICmd_unk_32(void) +{ + ContestAICmd_unk_31(); + + if((s16)eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_unk_33(void) +{ + ContestAICmd_unk_31(); + + if((s16)eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_unk_34(void) +{ + ContestAICmd_unk_31(); + + if((s16)eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_unk_35(void) +{ + ContestAICmd_unk_31(); + + if((s16)eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_unk_36(void) +{ + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + + eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].jam / 10; + gAIScriptPtr += 1; +} + +void ContestAICmd_unk_37(void) +{ + ContestAICmd_unk_36(); + + if((s16)eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_unk_38(void) +{ + ContestAICmd_unk_36(); + + if((s16)eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_unk_39(void) +{ + ContestAICmd_unk_36(); + + if((s16)eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_unk_3A(void) +{ + ContestAICmd_unk_36(); + + if((s16)eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_get_move_used_count(void) +{ + s16 result; + u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4]; + + if(move != sContestantStatus[eContestAI->unk41].prevMove) + result = 0; // move is unique and not reused. + else + result = sContestantStatus[eContestAI->unk41].moveRepeatCount + 1; + + eContestAI->scriptResult = result; + gAIScriptPtr += 1; +} + +void ContestAICmd_unk_3C(void) +{ + ContestAICmd_get_move_used_count(); + + if((s16)eContestAI->scriptResult < gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_unk_3D(void) +{ + ContestAICmd_get_move_used_count(); + + if((s16)eContestAI->scriptResult > gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_unk_3E(void) +{ + ContestAICmd_get_move_used_count(); + + if((s16)eContestAI->scriptResult == gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} + +void ContestAICmd_unk_3F(void) +{ + ContestAICmd_get_move_used_count(); + + if((s16)eContestAI->scriptResult != gAIScriptPtr[0]) + gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + else + gAIScriptPtr += 5; +} |