diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-12 20:44:49 -0500 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-12 20:44:49 -0500 |
commit | fdeee269791ba9e163f32522d44526b0e2b58f29 (patch) | |
tree | 791cbb27a679a3bcc8ae0112d96cafdb59d33870 | |
parent | 5d393adfcc1a994f9885a2720f3a0bb29afd5a6e (diff) |
up to ContestAICmd_unk_14
-rw-r--r-- | asm/contest_ai.s | 690 | ||||
-rw-r--r-- | include/contest.h | 87 | ||||
-rwxr-xr-x | src/contest_ai.c | 198 |
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; +} |