diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-05 09:32:18 -0400 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2019-04-06 08:16:13 -0500 |
commit | baca058e6c264599881eed427c79a82ecc58694e (patch) | |
tree | 6f316a6b29a9ec09e3b3c533bc9c92db4588d86c | |
parent | 50be36be3ff73ca95249e684f7b8f7f27e622f32 (diff) |
sub_80F6C20
-rw-r--r-- | asm/pokenav.s | 501 | ||||
-rw-r--r-- | asm/trainers_eye.s | 312 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/trainers_eye.c | 52 |
4 files changed, 366 insertions, 501 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s index 3e6270302..0cfce4615 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -2789,507 +2789,6 @@ _080F6C1A: bx r1 thumb_func_end sub_80F6AF0 - thumb_func_start sub_80F6C20 -sub_80F6C20: @ 80F6C20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080F6D44 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F6D48 @ =0x0000d158 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - mov r8, r1 - ldr r2, _080F6D4C @ =gSaveBlock1 + 0x97A - mov r9, r2 -_080F6C3A: - ldr r1, _080F6D50 @ =gTrainerEyeTrainers - mov r4, r8 - lsls r0, r4, 4 - adds r6, r0, r1 - ldrh r7, [r6] - adds r0, r7, 0 - bl HasTrainerAlreadyBeenFought - lsls r0, 24 - cmp r0, 0 - beq _080F6CA0 - ldr r0, _080F6D44 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r0, _080F6D48 @ =0x0000d158 - adds r5, r4, r0 - ldrh r0, [r5] - lsls r0, 3 - adds r0, r4, r0 - ldr r1, _080F6D54 @ =0x0000cee8 - adds r0, r1 - strh r7, [r0] - ldrh r0, [r5] - lsls r0, 3 - adds r0, r4, r0 - ldr r2, _080F6D58 @ =0x0000ceec - adds r0, r2 - mov r1, r8 - strb r1, [r0] - ldrh r0, [r5] - lsls r0, 3 - adds r0, r4, r0 - mov r1, r8 - add r1, r9 - ldrb r1, [r1] - adds r2, 0x1 - adds r0, r2 - strb r1, [r0] - ldrh r0, [r6, 0xA] - ldrh r1, [r6, 0xC] - bl Overworld_GetMapHeaderByGroupAndId - ldrh r1, [r5] - lsls r1, 3 - adds r4, r1 - ldrb r0, [r0, 0x14] - ldr r1, _080F6D5C @ =0x0000ceea - adds r4, r1 - strh r0, [r4] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080F6CA0: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x37 - bls _080F6C3A - movs r2, 0 - mov r8, r2 - movs r6, 0 -_080F6CB4: - ldr r1, _080F6D60 @ =gUnknown_083E49C0 - mov r4, r8 - lsls r0, r4, 2 - adds r5, r0, r1 - ldrh r4, [r5] - adds r0, r4, 0 - bl HasTrainerAlreadyBeenFought - lsls r0, 24 - cmp r0, 0 - beq _080F6D0E - ldr r0, _080F6D44 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080F6D48 @ =0x0000d158 - adds r3, r2, r0 - ldrh r0, [r3] - lsls r0, 3 - adds r0, r2, r0 - ldr r1, _080F6D54 @ =0x0000cee8 - adds r0, r1 - strh r4, [r0] - ldrh r0, [r3] - lsls r0, 3 - adds r0, r2, r0 - ldrh r1, [r5, 0x2] - ldr r4, _080F6D5C @ =0x0000ceea - adds r0, r4 - strh r1, [r0] - ldrh r0, [r3] - lsls r0, 3 - adds r0, r2, r0 - ldr r1, _080F6D64 @ =0x0000ceed - adds r0, r1 - strb r6, [r0] - ldrh r0, [r3] - lsls r0, 3 - adds r2, r0 - mov r0, r8 - adds r0, 0x38 - adds r4, 0x2 - adds r2, r4 - strb r0, [r2] - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_080F6D0E: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0xC - bls _080F6CB4 - ldr r3, _080F6D44 @ =gUnknown_083DFEC4 - ldr r2, [r3] - ldr r1, _080F6D68 @ =0x0000876c - adds r0, r2, r1 - movs r1, 0 - strh r1, [r0] - ldr r4, _080F6D6C @ =0x00008770 - adds r0, r2, r4 - strh r1, [r0] - subs r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldr r1, _080F6D48 @ =0x0000d158 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, 0x8 - bhi _080F6D70 - subs r4, r0, 0x1 - b _080F6D72 - .align 2, 0 -_080F6D44: .4byte gUnknown_083DFEC4 -_080F6D48: .4byte 0x0000d158 -_080F6D4C: .4byte gSaveBlock1 + 0x97A -_080F6D50: .4byte gTrainerEyeTrainers -_080F6D54: .4byte 0x0000cee8 -_080F6D58: .4byte 0x0000ceec -_080F6D5C: .4byte 0x0000ceea -_080F6D60: .4byte gUnknown_083E49C0 -_080F6D64: .4byte 0x0000ceed -_080F6D68: .4byte 0x0000876c -_080F6D6C: .4byte 0x00008770 -_080F6D70: - movs r4, 0x7 -_080F6D72: - ldr r1, _080F6DA8 @ =0x00008772 - adds r0, r2, r1 - strh r4, [r0] - ldr r3, [r3] - ldr r2, _080F6DAC @ =0x0000d158 - adds r0, r3, r2 - ldrh r0, [r0] - subs r0, 0x1 - ldr r4, _080F6DB0 @ =0x00008774 - adds r1, r3, r4 - strh r0, [r1] - movs r1, 0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080F6D94 - movs r1, 0x1 -_080F6D94: - ldr r2, _080F6DB4 @ =0x000087c9 - adds r0, r3, r2 - strb r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6DA8: .4byte 0x00008772 -_080F6DAC: .4byte 0x0000d158 -_080F6DB0: .4byte 0x00008774 -_080F6DB4: .4byte 0x000087c9 - thumb_func_end sub_80F6C20 - - thumb_func_start sub_80F6DB8 -sub_80F6DB8: @ 80F6DB8 - push {r4,lr} - movs r1, 0 - ldr r0, _080F6DEC @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r2, _080F6DF0 @ =0x00008fe9 - adds r0, r4, r2 - strb r1, [r0] - movs r0, 0 - bl sub_80F6E04 - ldr r0, _080F6DF4 @ =0x0000d15a - adds r1, r4, r0 - ldr r0, _080F6DF8 @ =0x0000ffb8 - strh r0, [r1] - movs r0, 0 - bl sub_80F2F7C - ldr r1, _080F6DFC @ =0x0000876e - adds r0, r4, r1 - ldrh r0, [r0] - ldr r2, _080F6E00 @ =0x000087dc - adds r4, r2 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F6DEC: .4byte gUnknown_083DFEC4 -_080F6DF0: .4byte 0x00008fe9 -_080F6DF4: .4byte 0x0000d15a -_080F6DF8: .4byte 0x0000ffb8 -_080F6DFC: .4byte 0x0000876e -_080F6E00: .4byte 0x000087dc - thumb_func_end sub_80F6DB8 - - thumb_func_start sub_80F6E04 -sub_80F6E04: @ 80F6E04 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080F6E78 @ =gUnknown_083DFEC4 - ldr r5, [r0] - ldr r1, _080F6E7C @ =0x0000876e - adds r0, r5, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r0, 3 - adds r0, r5, r0 - ldr r7, _080F6E80 @ =0x0000cee8 - adds r0, r7 - ldrh r1, [r0] - ldr r2, _080F6E84 @ =gTrainers - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r6, [r0, 0x3] - lsls r0, r6, 3 - mov r8, r0 - ldr r0, _080F6E88 @ =gTrainerFrontPicTable - add r0, r8 - ldr r2, _080F6E8C @ =gTrainerFrontPicCoords - lsls r1, r6, 2 - adds r1, r2 - ldrb r1, [r1] - ldr r2, _080F6E90 @ =0x000131e4 - adds r3, r5, r2 - lsls r2, r4, 13 - ldr r7, _080F6E94 @ =0x0000d1e4 - adds r2, r7 - adds r2, r5, r2 - str r2, [sp] - str r6, [sp, 0x4] - movs r2, 0x1 - bl DecompressPicFromTable_2 - ldr r0, _080F6E98 @ =gTrainerFrontPicPaletteTable - add r8, r0 - mov r1, r8 - ldr r0, [r1] - lsls r4, 7 - adds r5, r4 - adds r1, r5, 0 - bl LZ77UnCompWram - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6E78: .4byte gUnknown_083DFEC4 -_080F6E7C: .4byte 0x0000876e -_080F6E80: .4byte 0x0000cee8 -_080F6E84: .4byte gTrainers -_080F6E88: .4byte gTrainerFrontPicTable -_080F6E8C: .4byte gTrainerFrontPicCoords -_080F6E90: .4byte 0x000131e4 -_080F6E94: .4byte 0x0000d1e4 -_080F6E98: .4byte gTrainerFrontPicPaletteTable - thumb_func_end sub_80F6E04 - - thumb_func_start sub_80F6E9C -sub_80F6E9C: @ 80F6E9C - push {lr} - ldr r0, _080F6EB4 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F6EB8 @ =0x0000d15a - adds r1, r0, r2 - ldrh r2, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080F6EBC - movs r0, 0 - b _080F6ED0 - .align 2, 0 -_080F6EB4: .4byte gUnknown_083DFEC4 -_080F6EB8: .4byte 0x0000d15a -_080F6EBC: - adds r0, r2, 0 - adds r0, 0x8 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bge _080F6ECC - movs r0, 0x1 - b _080F6ED0 -_080F6ECC: - movs r0, 0 - strh r0, [r1] -_080F6ED0: - pop {r1} - bx r1 - thumb_func_end sub_80F6E9C - - thumb_func_start sub_80F6ED4 -sub_80F6ED4: @ 80F6ED4 - push {lr} - ldr r0, _080F6F00 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F6F04 @ =0x0000d15a - adds r1, r0, r2 - ldrh r3, [r1] - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x48 - negs r2, r2 - cmp r0, r2 - beq _080F6F0A - adds r0, r3, 0 - subs r0, 0x8 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, r2 - ble _080F6F08 - movs r0, 0x1 - b _080F6F0C - .align 2, 0 -_080F6F00: .4byte gUnknown_083DFEC4 -_080F6F04: .4byte 0x0000d15a -_080F6F08: - strh r2, [r1] -_080F6F0A: - movs r0, 0 -_080F6F0C: - pop {r1} - bx r1 - thumb_func_end sub_80F6ED4 - - thumb_func_start sub_80F6F10 -sub_80F6F10: @ 80F6F10 - push {lr} - ldr r0, _080F6F48 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F6F4C @ =0x0000d15e - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r1, _080F6F50 @ =0x0000d15f - adds r0, r1 - strb r2, [r0] - ldr r1, _080F6F54 @ =REG_BLDCNT - movs r0, 0xC8 - strh r0, [r1] - ldr r0, _080F6F58 @ =REG_BLDY - strh r2, [r0] - subs r1, 0x8 - ldr r2, _080F6F5C @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F6F60 @ =0x00001f1f - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - bl sub_80F6FB8 - pop {r0} - bx r0 - .align 2, 0 -_080F6F48: .4byte gUnknown_083DFEC4 -_080F6F4C: .4byte 0x0000d15e -_080F6F50: .4byte 0x0000d15f -_080F6F54: .4byte REG_BLDCNT -_080F6F58: .4byte REG_BLDY -_080F6F5C: .4byte 0x00003f3f -_080F6F60: .4byte 0x00001f1f - thumb_func_end sub_80F6F10 - - thumb_func_start sub_80F6F64 -sub_80F6F64: @ 80F6F64 - push {lr} - ldr r0, _080F6F9C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F6FA0 @ =0x0000d15e - adds r2, r1, r0 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8 - bls _080F6FB0 - movs r0, 0 - strb r0, [r2] - ldr r0, _080F6FA4 @ =0x0000d15f - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080F6FAC - ldr r1, _080F6FA8 @ =REG_BLDY - movs r0, 0x6 - strh r0, [r1] - b _080F6FB0 - .align 2, 0 -_080F6F9C: .4byte gUnknown_083DFEC4 -_080F6FA0: .4byte 0x0000d15e -_080F6FA4: .4byte 0x0000d15f -_080F6FA8: .4byte REG_BLDY -_080F6FAC: - ldr r0, _080F6FB4 @ =REG_BLDY - strh r1, [r0] -_080F6FB0: - pop {r0} - bx r0 - .align 2, 0 -_080F6FB4: .4byte REG_BLDY - thumb_func_end sub_80F6F64 - - thumb_func_start sub_80F6FB8 -sub_80F6FB8: @ 80F6FB8 - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _080F6FDC - ldr r1, _080F6FD0 @ =REG_WIN0H - ldr r2, _080F6FD4 @ =0x0000e8f0 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080F6FD8 @ =0x00000888 - b _080F6FE8 - .align 2, 0 -_080F6FD0: .4byte REG_WIN0H -_080F6FD4: .4byte 0x0000e8f0 -_080F6FD8: .4byte 0x00000888 -_080F6FDC: - ldr r1, _080F6FF0 @ =REG_WIN0H - ldr r2, _080F6FF4 @ =0x0000e8f0 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080F6FF8 @ =0x00000818 -_080F6FE8: - adds r0, r2, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080F6FF0: .4byte REG_WIN0H -_080F6FF4: .4byte 0x0000e8f0 -_080F6FF8: .4byte 0x00000818 - thumb_func_end sub_80F6FB8 - - thumb_func_start sub_80F6FFC -sub_80F6FFC: @ 80F6FFC - ldr r0, _080F7008 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - bx lr - .align 2, 0 -_080F7008: .4byte REG_BLDCNT - thumb_func_end sub_80F6FFC - .section .text_80F708C thumb_func_start sub_80F708C diff --git a/asm/trainers_eye.s b/asm/trainers_eye.s new file mode 100644 index 000000000..e303eb95e --- /dev/null +++ b/asm/trainers_eye.s @@ -0,0 +1,312 @@ + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80F6DB8 +sub_80F6DB8: @ 80F6DB8 + push {r4,lr} + movs r1, 0 + ldr r0, _080F6DEC @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r2, _080F6DF0 @ =0x00008fe9 + adds r0, r4, r2 + strb r1, [r0] + movs r0, 0 + bl sub_80F6E04 + ldr r0, _080F6DF4 @ =0x0000d15a + adds r1, r4, r0 + ldr r0, _080F6DF8 @ =0x0000ffb8 + strh r0, [r1] + movs r0, 0 + bl sub_80F2F7C + ldr r1, _080F6DFC @ =0x0000876e + adds r0, r4, r1 + ldrh r0, [r0] + ldr r2, _080F6E00 @ =0x000087dc + adds r4, r2 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F6DEC: .4byte gUnknown_083DFEC4 +_080F6DF0: .4byte 0x00008fe9 +_080F6DF4: .4byte 0x0000d15a +_080F6DF8: .4byte 0x0000ffb8 +_080F6DFC: .4byte 0x0000876e +_080F6E00: .4byte 0x000087dc + thumb_func_end sub_80F6DB8 + + thumb_func_start sub_80F6E04 +sub_80F6E04: @ 80F6E04 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080F6E78 @ =gUnknown_083DFEC4 + ldr r5, [r0] + ldr r1, _080F6E7C @ =0x0000876e + adds r0, r5, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + lsls r0, 3 + adds r0, r5, r0 + ldr r7, _080F6E80 @ =0x0000cee8 + adds r0, r7 + ldrh r1, [r0] + ldr r2, _080F6E84 @ =gTrainers + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r6, [r0, 0x3] + lsls r0, r6, 3 + mov r8, r0 + ldr r0, _080F6E88 @ =gTrainerFrontPicTable + add r0, r8 + ldr r2, _080F6E8C @ =gTrainerFrontPicCoords + lsls r1, r6, 2 + adds r1, r2 + ldrb r1, [r1] + ldr r2, _080F6E90 @ =0x000131e4 + adds r3, r5, r2 + lsls r2, r4, 13 + ldr r7, _080F6E94 @ =0x0000d1e4 + adds r2, r7 + adds r2, r5, r2 + str r2, [sp] + str r6, [sp, 0x4] + movs r2, 0x1 + bl DecompressPicFromTable_2 + ldr r0, _080F6E98 @ =gTrainerFrontPicPaletteTable + add r8, r0 + mov r1, r8 + ldr r0, [r1] + lsls r4, 7 + adds r5, r4 + adds r1, r5, 0 + bl LZ77UnCompWram + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6E78: .4byte gUnknown_083DFEC4 +_080F6E7C: .4byte 0x0000876e +_080F6E80: .4byte 0x0000cee8 +_080F6E84: .4byte gTrainers +_080F6E88: .4byte gTrainerFrontPicTable +_080F6E8C: .4byte gTrainerFrontPicCoords +_080F6E90: .4byte 0x000131e4 +_080F6E94: .4byte 0x0000d1e4 +_080F6E98: .4byte gTrainerFrontPicPaletteTable + thumb_func_end sub_80F6E04 + + thumb_func_start sub_80F6E9C +sub_80F6E9C: @ 80F6E9C + push {lr} + ldr r0, _080F6EB4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F6EB8 @ =0x0000d15a + adds r1, r0, r2 + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080F6EBC + movs r0, 0 + b _080F6ED0 + .align 2, 0 +_080F6EB4: .4byte gUnknown_083DFEC4 +_080F6EB8: .4byte 0x0000d15a +_080F6EBC: + adds r0, r2, 0 + adds r0, 0x8 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bge _080F6ECC + movs r0, 0x1 + b _080F6ED0 +_080F6ECC: + movs r0, 0 + strh r0, [r1] +_080F6ED0: + pop {r1} + bx r1 + thumb_func_end sub_80F6E9C + + thumb_func_start sub_80F6ED4 +sub_80F6ED4: @ 80F6ED4 + push {lr} + ldr r0, _080F6F00 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F6F04 @ =0x0000d15a + adds r1, r0, r2 + ldrh r3, [r1] + movs r2, 0 + ldrsh r0, [r1, r2] + movs r2, 0x48 + negs r2, r2 + cmp r0, r2 + beq _080F6F0A + adds r0, r3, 0 + subs r0, 0x8 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, r2 + ble _080F6F08 + movs r0, 0x1 + b _080F6F0C + .align 2, 0 +_080F6F00: .4byte gUnknown_083DFEC4 +_080F6F04: .4byte 0x0000d15a +_080F6F08: + strh r2, [r1] +_080F6F0A: + movs r0, 0 +_080F6F0C: + pop {r1} + bx r1 + thumb_func_end sub_80F6ED4 + + thumb_func_start sub_80F6F10 +sub_80F6F10: @ 80F6F10 + push {lr} + ldr r0, _080F6F48 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F6F4C @ =0x0000d15e + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, _080F6F50 @ =0x0000d15f + adds r0, r1 + strb r2, [r0] + ldr r1, _080F6F54 @ =REG_BLDCNT + movs r0, 0xC8 + strh r0, [r1] + ldr r0, _080F6F58 @ =REG_BLDY + strh r2, [r0] + subs r1, 0x8 + ldr r2, _080F6F5C @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F6F60 @ =0x00001f1f + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + bl sub_80F6FB8 + pop {r0} + bx r0 + .align 2, 0 +_080F6F48: .4byte gUnknown_083DFEC4 +_080F6F4C: .4byte 0x0000d15e +_080F6F50: .4byte 0x0000d15f +_080F6F54: .4byte REG_BLDCNT +_080F6F58: .4byte REG_BLDY +_080F6F5C: .4byte 0x00003f3f +_080F6F60: .4byte 0x00001f1f + thumb_func_end sub_80F6F10 + + thumb_func_start sub_80F6F64 +sub_80F6F64: @ 80F6F64 + push {lr} + ldr r0, _080F6F9C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F6FA0 @ =0x0000d15e + adds r2, r1, r0 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x8 + bls _080F6FB0 + movs r0, 0 + strb r0, [r2] + ldr r0, _080F6FA4 @ =0x0000d15f + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080F6FAC + ldr r1, _080F6FA8 @ =REG_BLDY + movs r0, 0x6 + strh r0, [r1] + b _080F6FB0 + .align 2, 0 +_080F6F9C: .4byte gUnknown_083DFEC4 +_080F6FA0: .4byte 0x0000d15e +_080F6FA4: .4byte 0x0000d15f +_080F6FA8: .4byte REG_BLDY +_080F6FAC: + ldr r0, _080F6FB4 @ =REG_BLDY + strh r1, [r0] +_080F6FB0: + pop {r0} + bx r0 + .align 2, 0 +_080F6FB4: .4byte REG_BLDY + thumb_func_end sub_80F6F64 + + thumb_func_start sub_80F6FB8 +sub_80F6FB8: @ 80F6FB8 + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _080F6FDC + ldr r1, _080F6FD0 @ =REG_WIN0H + ldr r2, _080F6FD4 @ =0x0000e8f0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080F6FD8 @ =0x00000888 + b _080F6FE8 + .align 2, 0 +_080F6FD0: .4byte REG_WIN0H +_080F6FD4: .4byte 0x0000e8f0 +_080F6FD8: .4byte 0x00000888 +_080F6FDC: + ldr r1, _080F6FF0 @ =REG_WIN0H + ldr r2, _080F6FF4 @ =0x0000e8f0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080F6FF8 @ =0x00000818 +_080F6FE8: + adds r0, r2, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080F6FF0: .4byte REG_WIN0H +_080F6FF4: .4byte 0x0000e8f0 +_080F6FF8: .4byte 0x00000818 + thumb_func_end sub_80F6FB8 + + thumb_func_start sub_80F6FFC +sub_80F6FFC: @ 80F6FFC + ldr r0, _080F7008 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_080F7008: .4byte REG_BLDCNT + thumb_func_end sub_80F6FFC + + .align 2, 0 @ Don't pad with nop diff --git a/ld_script.txt b/ld_script.txt index 4cae078bf..d48644e18 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -297,6 +297,8 @@ SECTIONS { src/pokenav_before.o(.text); src/pokenav.o(.text); asm/pokenav.o(.text); + src/trainers_eye.o(.text); + asm/trainers_eye.o(.text); src/pokenav_after.o(.text); asm/pokenav.o(.text_80F708C); src/mon_markings.o(.text); diff --git a/src/trainers_eye.c b/src/trainers_eye.c new file mode 100644 index 000000000..a1f61a61d --- /dev/null +++ b/src/trainers_eye.c @@ -0,0 +1,52 @@ +#include "global.h" +#include "battle_setup.h" +#include "overworld.h" +#include "pokenav.h" + +struct TrainersEyeGymLeadersAndE4 +{ + u16 opponentId; + u16 regionMapSectionId; +}; + +extern const struct TrainersEyeGymLeadersAndE4 gUnknown_083E49C0[13]; + +void sub_80F6C20(void) +{ + u16 i; + + gUnknown_083DFEC4->unkD158 = 0; + + for (i = 0; i < 56; i++) + { + if (HasTrainerAlreadyBeenFought(gTrainerEyeTrainers[i].opponentIDs[0])) + { + gUnknown_083DFEC4->unkCEE8[gUnknown_083DFEC4->unkD158].unk0 = gTrainerEyeTrainers[i].opponentIDs[0]; + gUnknown_083DFEC4->unkCEE8[gUnknown_083DFEC4->unkD158].unk4 = i; + gUnknown_083DFEC4->unkCEE8[gUnknown_083DFEC4->unkD158].unk5 = gSaveBlock1.trainerRematches[i]; + gUnknown_083DFEC4->unkCEE8[gUnknown_083DFEC4->unkD158].unk2 = Overworld_GetMapHeaderByGroupAndId(gTrainerEyeTrainers[i].mapGroup, gTrainerEyeTrainers[i].mapNum)->regionMapSectionId; + gUnknown_083DFEC4->unkD158++; + } + } + + for (i = 0; i < 13; i++) + { + { + if (HasTrainerAlreadyBeenFought(gUnknown_083E49C0[i].opponentId)) + { + gUnknown_083DFEC4->unkCEE8[gUnknown_083DFEC4->unkD158].unk0 = gUnknown_083E49C0[i].opponentId; + gUnknown_083DFEC4->unkCEE8[gUnknown_083DFEC4->unkD158].unk2 = gUnknown_083E49C0[i].regionMapSectionId; + gUnknown_083DFEC4->unkCEE8[gUnknown_083DFEC4->unkD158].unk5 = 0; + gUnknown_083DFEC4->unkCEE8[gUnknown_083DFEC4->unkD158].unk4 = i + 0x38; + gUnknown_083DFEC4->unkD158++; + } + } + } + + gUnknown_083DFEC4->unk876C = 0; + gUnknown_083DFEC4->unk8770 = 0; + gUnknown_083DFEC4->unk876E = 0; + gUnknown_083DFEC4->unk8772 = gUnknown_083DFEC4->unkD158 <= 8 ? gUnknown_083DFEC4->unkD158 - 1 : 7; + gUnknown_083DFEC4->unk8774 = gUnknown_083DFEC4->unkD158 - 1; + gUnknown_083DFEC4->unk87C9 = gUnknown_083DFEC4->unk8774 < 8 ? 0 : 1; +} |