diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-12 22:48:47 -0500 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-12 22:48:47 -0500 |
commit | e33a9b2b535b401a47455065dd4cb9364ed9c9f7 (patch) | |
tree | 45031eae974b5965d51dd69a08c0b2d2b0d24bea | |
parent | fdeee269791ba9e163f32522d44526b0e2b58f29 (diff) |
up to ContestAICmd_unk_2C
-rw-r--r-- | asm/contest_ai.s | 848 | ||||
-rw-r--r-- | include/contest.h | 1 | ||||
-rwxr-xr-x | src/contest_ai.c | 223 |
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; +} |