diff options
author | KDSKardabox <bollygame94@gmail.com> | 2018-04-17 14:24:39 +0530 |
---|---|---|
committer | KDSKardabox <bollygame94@gmail.com> | 2018-04-17 14:24:39 +0530 |
commit | f5cbefc2958e5dec050be0b6a8ccaf46c42693a1 (patch) | |
tree | 1251a94d6749abca11abb9e442725528b7ed7a28 | |
parent | 936bb5925ae797a9cf59ef43940f52547c8f60a7 (diff) |
Decompile mon markings
-rw-r--r-- | asm/mon_markings.s | 946 | ||||
-rw-r--r-- | data/mon_markings.s | 157 | ||||
-rw-r--r-- | include/graphics.h | 4 | ||||
-rw-r--r-- | include/mon_markings.h | 24 | ||||
-rw-r--r-- | include/text_window.h | 4 | ||||
-rw-r--r-- | ld_script.txt | 4 | ||||
-rw-r--r-- | src/mon_markings.c | 616 | ||||
-rw-r--r-- | src/text_window.c | 40 | ||||
-rw-r--r-- | sym_ewram.txt | 4 |
9 files changed, 669 insertions, 1130 deletions
diff --git a/asm/mon_markings.s b/asm/mon_markings.s deleted file mode 100644 index dfc375fdf..000000000 --- a/asm/mon_markings.s +++ /dev/null @@ -1,946 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_811F90C -sub_811F90C: @ 811F90C - ldr r1, =gUnknown_0203A124 - str r0, [r1] - bx lr - .pool - thumb_func_end sub_811F90C - - thumb_func_start sub_811F918 -sub_811F918: @ 811F918 - push {lr} - sub sp, 0x4 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x14] - lsrs r0, 3 - bl GetWindowFrameTilesPal - ldr r3, =gUnknown_0203A124 - ldr r2, [r3] - ldr r1, [r0] - str r1, [r2, 0x2C] - ldr r0, [r0, 0x4] - str r0, [r2, 0x30] - ldr r0, =0x000010b4 - adds r2, r0 - movs r1, 0 - strb r1, [r2] - mov r0, sp - strh r1, [r0] - ldr r1, [r3] - adds r1, 0x34 - ldr r2, =0x01000800 - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_811F918 - - thumb_func_start sub_811F960 -sub_811F960: @ 811F960 - push {r4-r7,lr} - ldr r0, =gUnknown_0203A124 - ldr r1, [r0] - ldr r2, =0x000010b4 - adds r0, r1, r2 - ldrb r2, [r0] - lsls r0, r2, 8 - adds r0, 0x34 - adds r5, r1, r0 - cmp r2, 0xD - beq _0811FA30 - cmp r2, 0xD - bgt _0811F988 - cmp r2, 0 - beq _0811F98E - b _0811F9D8 - .pool -_0811F988: - cmp r2, 0xE - beq _0811FA7C - b _0811F9D8 -_0811F98E: - ldr r0, [r1, 0x2C] - adds r1, r5, 0 - movs r2, 0x8 - bl CpuFastSet - movs r4, 0 - adds r7, r5, 0 - adds r7, 0xE0 -_0811F99E: - ldr r6, =gUnknown_0203A124 - ldr r0, [r6] - ldr r0, [r0, 0x2C] - adds r0, 0x20 - adds r4, 0x1 - lsls r1, r4, 5 - adds r1, r5, r1 - movs r2, 0x8 - bl CpuFastSet - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x5 - bls _0811F99E - ldr r0, [r6] - ldr r0, [r0, 0x2C] - adds r0, 0x40 - adds r1, r7, 0 - movs r2, 0x8 - bl CpuFastSet - ldr r1, [r6] - ldr r0, =0x000010b4 - adds r1, r0 - b _0811FA1E - .pool -_0811F9D8: - ldr r0, =gUnknown_0203A124 - ldr r0, [r0] - ldr r0, [r0, 0x2C] - adds r0, 0x60 - adds r1, r5, 0 - movs r2, 0x8 - bl CpuFastSet - movs r4, 0 - adds r7, r5, 0 - adds r7, 0xE0 -_0811F9EE: - ldr r6, =gUnknown_0203A124 - ldr r0, [r6] - ldr r0, [r0, 0x2C] - adds r0, 0x80 - adds r4, 0x1 - lsls r1, r4, 5 - adds r1, r5, r1 - movs r2, 0x8 - bl CpuFastSet - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x5 - bls _0811F9EE - ldr r0, [r6] - ldr r0, [r0, 0x2C] - adds r0, 0xA0 - adds r1, r7, 0 - movs r2, 0x8 - bl CpuFastSet - ldr r1, [r6] - ldr r2, =0x000010b4 - adds r1, r2 -_0811FA1E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0811FA88 - .pool -_0811FA30: - ldr r0, [r1, 0x2C] - adds r0, 0xC0 - adds r1, r5, 0 - movs r2, 0x8 - bl CpuFastSet - movs r4, 0 - adds r7, r5, 0 - adds r7, 0xE0 -_0811FA42: - ldr r6, =gUnknown_0203A124 - ldr r0, [r6] - ldr r0, [r0, 0x2C] - adds r0, 0xE0 - adds r4, 0x1 - lsls r1, r4, 5 - adds r1, r5, r1 - movs r2, 0x8 - bl CpuFastSet - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x5 - bls _0811FA42 - ldr r0, [r6] - ldr r0, [r0, 0x2C] - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - adds r1, r7, 0 - movs r2, 0x8 - bl CpuFastSet - ldr r1, [r6] - ldr r2, =0x000010b4 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0811FA7C: - movs r0, 0 - b _0811FA8A - .pool -_0811FA88: - movs r0, 0x1 -_0811FA8A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_811F960 - - thumb_func_start sub_811FA90 -sub_811FA90: @ 811FA90 - push {lr} - bl sub_811F918 -_0811FA96: - bl sub_811F960 - lsls r0, 24 - cmp r0, 0 - bne _0811FA96 - pop {r0} - bx r0 - thumb_func_end sub_811FA90 - - thumb_func_start sub_811FAA4 -sub_811FAA4: @ 811FAA4 - push {r4-r7,lr} - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - ldr r2, =gUnknown_0203A124 - ldr r3, [r2] - movs r1, 0 - strb r1, [r3, 0x5] - ldr r1, [r2] - strb r0, [r1, 0x4] - movs r3, 0 - adds r7, r2, 0 - adds r4, r7, 0 - movs r2, 0x1 -_0811FAC2: - ldr r0, [r4] - adds r1, r0, 0x6 - adds r1, r3 - ldrb r0, [r0, 0x4] - asrs r0, r3 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _0811FAC2 - lsls r0, r5, 16 - asrs r0, 16 - lsls r1, r6, 16 - asrs r1, 16 - ldr r3, [r7] - ldrh r2, [r3] - ldrh r3, [r3, 0x2] - bl sub_811FC80 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811FAA4 - - thumb_func_start sub_811FAF8 -sub_811FAF8: @ 811FAF8 - push {r4-r7,lr} - movs r5, 0 - ldr r4, =gUnknown_0203A124 -_0811FAFE: - ldr r0, [r4] - ldrh r0, [r0] - adds r0, r5, r0 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpriteTilesByTag - ldr r0, [r4] - ldrh r0, [r0, 0x2] - adds r0, r5, r0 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _0811FAFE - movs r5, 0 - ldr r6, =gUnknown_0203A124 -_0811FB28: - ldr r0, [r6] - lsls r4, r5, 2 - adds r0, 0xC - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _0811FB9A - bl DestroySprite - ldr r0, [r6] - adds r0, 0xC - adds r0, r4 - movs r1, 0 - str r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _0811FB28 - movs r5, 0 - ldr r6, =gUnknown_0203A124 -_0811FB52: - ldr r0, [r6] - lsls r4, r5, 2 - adds r0, 0x14 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _0811FB9A - bl DestroySprite - ldr r0, [r6] - adds r0, 0x14 - adds r0, r4 - movs r7, 0 - str r7, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _0811FB52 - ldr r4, =gUnknown_0203A124 - ldr r0, [r4] - ldr r0, [r0, 0x24] - cmp r0, 0 - beq _0811FB8A - bl DestroySprite - ldr r0, [r4] - str r7, [r0, 0x24] -_0811FB8A: - ldr r0, [r4] - ldr r0, [r0, 0x28] - cmp r0, 0 - beq _0811FB9A - bl DestroySprite - ldr r0, [r4] - str r7, [r0, 0x28] -_0811FB9A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811FAF8 - - thumb_func_start sub_811FBA4 -sub_811FBA4: @ 811FBA4 - push {r4,r5,lr} - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _0811FBDC - movs r0, 0x5 - bl PlaySE - ldr r2, =gUnknown_0203A124 - ldr r1, [r2] - ldrb r0, [r1, 0x5] - subs r0, 0x1 - strb r0, [r1, 0x5] - lsls r0, 24 - cmp r0, 0 - bge _0811FC64 - ldr r1, [r2] - movs r0, 0x5 - strb r0, [r1, 0x5] - b _0811FC64 - .pool -_0811FBDC: - movs r0, 0x80 - ands r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _0811FC0C - movs r0, 0x5 - bl PlaySE - ldr r2, =gUnknown_0203A124 - ldr r1, [r2] - ldrb r0, [r1, 0x5] - adds r0, 0x1 - strb r0, [r1, 0x5] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x5 - ble _0811FC64 - ldr r0, [r2] - strb r5, [r0, 0x5] - b _0811FC64 - .pool -_0811FC0C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0811FC68 - movs r0, 0x5 - bl PlaySE - ldr r2, =gUnknown_0203A124 - ldr r0, [r2] - movs r1, 0x5 - ldrsb r1, [r0, r1] - cmp r1, 0x4 - beq _0811FC40 - cmp r1, 0x5 - beq _0811FC76 - adds r0, 0x6 - adds r1, r0, r1 - movs r2, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _0811FC62 - movs r2, 0x1 - b _0811FC62 - .pool -_0811FC40: - strb r4, [r0, 0x4] - movs r3, 0 - adds r4, r2, 0 -_0811FC46: - ldr r2, [r4] - adds r0, r2, 0x6 - adds r0, r3 - ldrb r0, [r0] - lsls r0, r3 - ldrb r1, [r2, 0x4] - orrs r0, r1 - strb r0, [r2, 0x4] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _0811FC46 - b _0811FC76 -_0811FC62: - strb r2, [r1] -_0811FC64: - movs r0, 0x1 - b _0811FC78 -_0811FC68: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0811FC64 - movs r0, 0x5 - bl PlaySE -_0811FC76: - movs r0, 0 -_0811FC78: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_811FBA4 - - thumb_func_start sub_811FC80 -sub_811FC80: @ 811FC80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x50 - mov r8, r0 - mov r9, r1 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r4, =gUnknown_0203A124 - ldr r0, [r4] - adds r0, 0x34 - str r0, [sp, 0x18] - add r1, sp, 0x1C - movs r7, 0 - movs r0, 0x80 - lsls r0, 5 - strh r0, [r1] - mov r0, sp - adds r0, 0x1E - strh r5, [r0] - add r1, sp, 0x20 - ldr r0, =gPokenavConditionMarker_Gfx - str r0, [sp, 0x20] - movs r0, 0xC8 - lsls r0, 2 - strh r0, [r1, 0x4] - adds r0, r5, 0x1 - strh r0, [r1, 0x6] - add r0, sp, 0x28 - movs r1, 0 - movs r2, 0x8 - bl memset - add r2, sp, 0x18 - mov r10, r2 - mov r0, sp - mov r1, r10 - movs r2, 0x18 - bl memcpy - ldr r0, [r4] - ldr r0, [r0, 0x30] - str r0, [sp, 0x30] - add r0, sp, 0x34 - strh r6, [r0] - add r1, sp, 0x38 - ldr r0, =gPokenavConditionMarker_Pal - str r0, [sp, 0x38] - adds r0, r6, 0x1 - strh r0, [r1, 0x4] - add r0, sp, 0x40 - movs r1, 0 - movs r2, 0x8 - bl memset - add r4, sp, 0x30 - mov r0, r10 - adds r1, r4, 0 - movs r2, 0x18 - bl memcpy - strh r5, [r4] - strh r6, [r4, 0x2] - ldr r0, =gUnknown_0859EE7C - str r0, [r4, 0x4] - ldr r0, =gUnknown_0859EF14 - str r0, [r4, 0x8] - str r7, [r4, 0xC] - ldr r0, =gDummySpriteAffineAnimTable - str r0, [r4, 0x10] - ldr r0, =TaskDummy7 - str r0, [r4, 0x14] - mov r0, sp - bl LoadSpriteSheets - mov r0, r10 - bl LoadSpritePalettes - movs r5, 0 - mov r3, r8 - lsls r3, 16 - mov r8, r3 - movs r0, 0x80 - lsls r0, 14 - add r0, r8 - mov r10, r0 - mov r1, r8 - str r1, [sp, 0x48] - mov r2, r9 - lsls r2, 16 - mov r9, r2 - movs r7, 0x80 - lsls r7, 14 - add r7, r9 - mov r3, r9 - str r3, [sp, 0x4C] -_0811FD58: - adds r0, r4, 0 - mov r2, r10 - asrs r1, r2, 16 - asrs r2, r7, 16 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - bne _0811FD70 - b _0811FEFC -_0811FD70: - ldr r6, =gUnknown_0203A124 - ldr r2, [r6] - lsls r0, r5, 2 - adds r2, 0xC - adds r2, r0 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - str r0, [r2] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _0811FD58 - ldr r0, [r6] - ldr r1, [r0, 0x10] - ldr r3, [sp, 0x4C] - asrs r0, r3, 16 - adds r0, 0x60 - strh r0, [r1, 0x22] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - ldr r0, =gUnknown_0859EEDC - str r0, [r4, 0x8] - ldr r0, =sub_811FF40 - str r0, [r4, 0x14] - ldr r0, =gUnknown_0859EE84 - str r0, [r4, 0x4] - movs r5, 0 - ldr r0, [sp, 0x48] - movs r1, 0x80 - lsls r1, 14 - adds r0, r1 - mov r9, r0 -_0811FDC8: - lsls r2, r5, 4 - adds r2, 0x10 - ldr r3, [sp, 0x4C] - asrs r3, 16 - mov r8, r3 - add r2, r8 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - mov r3, r9 - asrs r1, r3, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - bne _0811FDEE - b _0811FF0C -_0811FDEE: - ldr r6, =gUnknown_0203A124 - ldr r1, [r6] - lsls r0, r5, 2 - adds r1, 0x14 - adds r1, r0 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r7, =gSprites - adds r0, r7 - str r0, [r1] - strh r5, [r0, 0x2E] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _0811FDC8 - ldr r0, =SpriteCallbackDummy - str r0, [r4, 0x14] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _0811FEA8 - ldr r0, [r6] - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - adds r1, r7 - str r1, [r0, 0x28] - ldrb r3, [r1, 0x1] - movs r2, 0x3F - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1, 0x1] - ldr r0, [r6] - ldr r1, [r0, 0x28] - ldrb r0, [r1, 0x3] - ands r2, r0 - movs r0, 0x80 - orrs r2, r0 - strb r2, [r1, 0x3] - ldr r0, [r6] - ldr r0, [r0, 0x28] - movs r1, 0x9 - bl StartSpriteAnim - ldr r1, [r6] - ldr r2, [r1, 0x28] - ldr r3, [sp, 0x48] - asrs r0, r3, 16 - adds r0, 0x20 - strh r0, [r2, 0x20] - ldr r2, [r1, 0x28] - mov r0, r8 - adds r0, 0x50 - strh r0, [r2, 0x22] - ldr r0, [r1, 0x28] - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0 - bl CalcCenterToCornerVec - b _0811FEAE - .pool -_0811FEA8: - ldr r1, [r6] - movs r0, 0 - str r0, [r1, 0x28] -_0811FEAE: - ldr r0, =sub_811FF7C - str r0, [r4, 0x14] - ldr r0, [sp, 0x48] - movs r2, 0xC0 - lsls r2, 12 - adds r1, r0, r2 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _0811FF20 - ldr r0, =gUnknown_0203A124 - ldr r2, [r0] - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r2, 0x24] - ldr r3, [sp, 0x4C] - asrs r0, r3, 16 - adds r0, 0x10 - strh r0, [r1, 0x2E] - ldr r0, [r2, 0x24] - movs r1, 0x8 - bl StartSpriteAnim - b _0811FF28 - .pool -_0811FEFC: - ldr r0, =gUnknown_0203A124 - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0xC - b _0811FF14 - .pool -_0811FF0C: - ldr r0, =gUnknown_0203A124 - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0x14 -_0811FF14: - adds r0, r1 - movs r1, 0 - str r1, [r0] - b _0811FF28 - .pool -_0811FF20: - ldr r0, =gUnknown_0203A124 - ldr r1, [r0] - movs r0, 0 - str r0, [r1, 0x24] -_0811FF28: - add sp, 0x50 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811FC80 - - thumb_func_start TaskDummy7 -TaskDummy7: @ 811FF3C - bx lr - thumb_func_end TaskDummy7 - - thumb_func_start sub_811FF40 -sub_811FF40: @ 811FF40 - push {lr} - adds r2, r0, 0 - ldr r0, =gUnknown_0203A124 - ldr r0, [r0] - movs r3, 0x2E - ldrsh r1, [r2, r3] - adds r0, 0x6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0811FF6C - lsls r1, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim - b _0811FF76 - .pool -_0811FF6C: - lsls r1, 25 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim -_0811FF76: - pop {r0} - bx r0 - thumb_func_end sub_811FF40 - - thumb_func_start sub_811FF7C -sub_811FF7C: @ 811FF7C - ldr r1, =gUnknown_0203A124 - ldr r1, [r1] - ldrb r1, [r1, 0x5] - lsls r1, 24 - asrs r1, 24 - lsls r1, 4 - ldrh r2, [r0, 0x2E] - adds r1, r2 - strh r1, [r0, 0x22] - bx lr - .pool - thumb_func_end sub_811FF7C - - thumb_func_start sub_811FF94 -sub_811FF94: @ 811FF94 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r2, 0 - bne _0811FFA4 - ldr r2, =gUnknown_0859E65C -_0811FFA4: - movs r3, 0x10 - bl sub_811FFD4 - pop {r1} - bx r1 - .pool - thumb_func_end sub_811FF94 - - thumb_func_start sub_811FFB4 -sub_811FFB4: @ 811FFB4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r2, 0 - bne _0811FFC4 - ldr r2, =gUnknown_0859E65C -_0811FFC4: - movs r3, 0x1 - bl sub_811FFD4 - pop {r1} - bx r1 - .pool - thumb_func_end sub_811FFB4 - - thumb_func_start sub_811FFD4 -sub_811FFD4: @ 811FFD4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x28 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r4, =gUnknown_0859E67C - str r4, [sp, 0x18] - movs r4, 0x80 - add r5, sp, 0x18 - lsrs r6, r0, 16 - orrs r0, r4 - str r0, [r5, 0x4] - str r2, [sp, 0x20] - ldr r0, =0xffff0000 - mov r8, r0 - add r4, sp, 0x20 - ldr r0, [r4, 0x4] - mov r2, r8 - ands r0, r2 - orrs r0, r1 - str r0, [r4, 0x4] - mov r0, sp - movs r2, 0 - strh r6, [r0] - strh r1, [r0, 0x2] - ldr r0, =gUnknown_0859EF1C - str r0, [sp, 0x4] - ldr r0, =gUnknown_0859EFA4 - str r0, [sp, 0x8] - str r2, [sp, 0xC] - ldr r0, =gDummySpriteAffineAnimTable - str r0, [sp, 0x10] - ldr r0, =TaskDummy7 - str r0, [sp, 0x14] - lsls r3, 23 - lsrs r3, 16 - ldr r0, [r5, 0x4] - mov r1, r8 - ands r0, r1 - orrs r0, r3 - str r0, [r5, 0x4] - adds r0, r5, 0 - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _08120068 - movs r0, 0 - b _08120072 - .pool -_08120068: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 -_08120072: - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_811FFD4 - - thumb_func_start sub_8120084 -sub_8120084: @ 8120084 - push {lr} - lsls r0, 24 - lsrs r0, 17 - ldr r2, =gUnknown_0859E67C - adds r0, r2 - movs r2, 0x80 - movs r3, 0x10 - bl RequestDma3Copy - pop {r0} - bx r0 - .pool - thumb_func_end sub_8120084 - - .align 2, 0 @ Don't pad with nop. diff --git a/data/mon_markings.s b/data/mon_markings.s deleted file mode 100644 index 7d30c0012..000000000 --- a/data/mon_markings.s +++ /dev/null @@ -1,157 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gUnknown_0859E65C:: @ 859E65C - .incbin "graphics/misc/mon_markings.gbapal" - -gUnknown_0859E67C:: @ 859E67C - .incbin "graphics/misc/mon_markings.4bpp" - -gUnknown_0859EE7C:: @ 859EE7C - .2byte 0, 0xC000, 0, 0 - -gUnknown_0859EE84:: @ 859EE84 - .2byte 0, 0, 0, 0 - -gUnknown_0859EE8C:: @ 859EE8C - .2byte 0, 5, -1, 0 - -gUnknown_0859EE94:: @ 859EE94 - .2byte 1, 5, -1, 0 - -gUnknown_0859EE9C:: @ 859EE9C - .2byte 2, 5, -1, 0 - -gUnknown_0859EEA4:: @ 859EEA4 - .2byte 3, 5, -1, 0 - -gUnknown_0859EEAC:: @ 859EEAC - .2byte 4, 5, -1, 0 - -gUnknown_0859EEB4:: @ 859EEB4 - .2byte 5, 5, -1, 0 - -gUnknown_0859EEBC:: @ 859EEBC - .2byte 6, 5, -1, 0 - -gUnknown_0859EEC4:: @ 859EEC4 - .2byte 7, 5, -1, 0 - -gUnknown_0859EECC:: @ 859EECC - .2byte 8, 5, -1, 0 - -gUnknown_0859EED4:: @ 859EED4 - .2byte 9, 5, -1, 0 - -gUnknown_0859EEDC:: @ 859EEDC - .4byte gUnknown_0859EE8C - .4byte gUnknown_0859EE94 - .4byte gUnknown_0859EE9C - .4byte gUnknown_0859EEA4 - .4byte gUnknown_0859EEAC - .4byte gUnknown_0859EEB4 - .4byte gUnknown_0859EEBC - .4byte gUnknown_0859EEC4 - .4byte gUnknown_0859EECC - .4byte gUnknown_0859EED4 - -gUnknown_0859EF04:: @ 859EF04 - .2byte 0, 5, -1, 0 - -gUnknown_0859EF0C:: @ 859EF0C - .2byte 64, 5, -1, 0 - -gUnknown_0859EF14:: @ 859EF14 - .4byte gUnknown_0859EF04 - .4byte gUnknown_0859EF0C - -gUnknown_0859EF1C:: @ 859EF1C - .2byte 0x4000 - .2byte 0x4000 - .2byte 0 - .2byte 0 - -gUnknown_0859EF24:: @ 859EF24 - obj_image_anim_frame 0, 5 - obj_image_anim_end - -gUnknown_0859EF2C:: @ 859EF2C - obj_image_anim_frame 4, 5 - obj_image_anim_end - -gUnknown_0859EF34:: @ 859EF34 - obj_image_anim_frame 8, 5 - obj_image_anim_end - -gUnknown_0859EF3C:: @ 859EF3C - obj_image_anim_frame 12, 5 - obj_image_anim_end - -gUnknown_0859EF44:: @ 859EF44 - obj_image_anim_frame 16, 5 - obj_image_anim_end - -gUnknown_0859EF4C:: @ 859EF4C - obj_image_anim_frame 20, 5 - obj_image_anim_end - -gUnknown_0859EF54:: @ 859EF54 - obj_image_anim_frame 24, 5 - obj_image_anim_end - -gUnknown_0859EF5C:: @ 859EF5C - obj_image_anim_frame 28, 5 - obj_image_anim_end - -gUnknown_0859EF64:: @ 859EF64 - obj_image_anim_frame 32, 5 - obj_image_anim_end - -gUnknown_0859EF6C:: @ 859EF6C - obj_image_anim_frame 36, 5 - obj_image_anim_end - -gUnknown_0859EF74:: @ 859EF74 - obj_image_anim_frame 40, 5 - obj_image_anim_end - -gUnknown_0859EF7C:: @ 859EF7C - obj_image_anim_frame 44, 5 - obj_image_anim_end - -gUnknown_0859EF84:: @ 859EF84 - obj_image_anim_frame 48, 5 - obj_image_anim_end - -gUnknown_0859EF8C:: @ 859EF8C - obj_image_anim_frame 52, 5 - obj_image_anim_end - -gUnknown_0859EF94:: @ 859EF94 - obj_image_anim_frame 56, 5 - obj_image_anim_end - -gUnknown_0859EF9C:: @ 859EF9C - obj_image_anim_frame 60, 5 - obj_image_anim_end - -gUnknown_0859EFA4:: @ 859EFA4 - .4byte gUnknown_0859EF24 - .4byte gUnknown_0859EF2C - .4byte gUnknown_0859EF34 - .4byte gUnknown_0859EF3C - .4byte gUnknown_0859EF44 - .4byte gUnknown_0859EF4C - .4byte gUnknown_0859EF54 - .4byte gUnknown_0859EF5C - .4byte gUnknown_0859EF64 - .4byte gUnknown_0859EF6C - .4byte gUnknown_0859EF74 - .4byte gUnknown_0859EF7C - .4byte gUnknown_0859EF84 - .4byte gUnknown_0859EF8C - .4byte gUnknown_0859EF94 - .4byte gUnknown_0859EF9C diff --git a/include/graphics.h b/include/graphics.h index 9afcb75ad..1313ddc3a 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2864,4 +2864,8 @@ extern const u8 gBerryPalette_Enigma[]; //credits extern const u8 gCreditsCopyrightEnd_Gfx[]; +//pokenav condition marker +extern const u8 gPokenavConditionMarker_Gfx[]; +extern const u16 gPokenavConditionMarker_Pal[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/mon_markings.h b/include/mon_markings.h new file mode 100644 index 000000000..852e8b4eb --- /dev/null +++ b/include/mon_markings.h @@ -0,0 +1,24 @@ +#ifndef POKEEMERALD_MON_MARKINGS_H +#define POKEEMERALD_MON_MARKINGS_H + +struct PokemonMarkMenu +{ + /*0x0000*/ u16 baseTileTag; + /*0x0002*/ u16 basePaletteTag; + /*0x0004*/ u8 markings; // bit flags + /*0x0005*/ s8 cursorPos; + /*0x0006*/ bool8 markingsArray[4]; + /*0x000A*/ u8 cursorBaseY; + /*0x000B*/ bool8 spriteSheetLoadRequired; + /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window + /*0x0014*/ struct Sprite *menuMarkingSprites[4]; + /*0x0024*/ struct Sprite *unkSprite; + /*0x0028*/ struct Sprite *menuTextSprite; + /*0x002C*/ const u8 *frameTiles; + /*0x0030*/ const u16 *framePalette; + /*0x0034*/ u8 menuWindowSpriteTiles[0x1000]; + /*0x1034*/ u8 filler1030[0x80]; + /*0x10B4*/ u8 tileLoadState; +}; // 10b8 + +#endif //POKEEMERALD_MON_MARKINGS_H diff --git a/include/text_window.h b/include/text_window.h index e6a753fcb..2ac13fab7 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -5,11 +5,11 @@ struct TilesPal { - const u32 *tiles; + const u8 *tiles; const u16 *pal; }; -extern const u32 gTextWindowFrame1_Gfx[]; +extern const u8 gTextWindowFrame1_Gfx[]; extern const u16 gTextWindowFrame1_Pal[]; const struct TilesPal* GetWindowFrameTilesPal(u8 id); diff --git a/ld_script.txt b/ld_script.txt index 7f3026980..056e83828 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -161,7 +161,7 @@ SECTIONS { asm/battle_anim_80FE840.o(.text); src/bike.o(.text); asm/easy_chat.o(.text); - asm/mon_markings.o(.text); + src/mon_markings.o(.text); asm/mauville_old_man.o(.text); src/mail.o(.text); asm/menu_helpers.o(.text); @@ -455,7 +455,7 @@ SECTIONS { data/battle_anim_80FE840.o(.rodata); src/bike.o(.rodata); data/easy_chat.o(.rodata); - data/mon_markings.o(.rodata); + src/mon_markings.o(.rodata); data/mauville_old_man.o(.rodata); src/mail.o(.rodata); data/menu_helpers.o(.rodata); diff --git a/src/mon_markings.c b/src/mon_markings.c new file mode 100644 index 000000000..37be1b764 --- /dev/null +++ b/src/mon_markings.c @@ -0,0 +1,616 @@ +#include "global.h" +#include "dma3.h" +#include "graphics.h" +#include "main.h" +#include "menu_indicators.h" +#include "mon_markings.h" +#include "constants/songs.h" +#include "sound.h" +#include "sprite.h" +#include "text_window.h" + + +#ifdef GERMAN +#define MENU_TEXT_SPRITE_X_OFFSET 24 +#else +#define MENU_TEXT_SPRITE_X_OFFSET 32 +#endif + +// static functions +static void sub_811FC80(s16, s16, u16, u16); +static void TaskDummy7(struct Sprite *); +static void sub_811FF40(struct Sprite *); +static void sub_811FF7C(struct Sprite *); +static struct Sprite *sub_811FFD4(u16, u16, const u16 *, u16); + +// .rodata +static const u16 gUnknown_0859E65C[] = INCBIN_U16("graphics/misc/mon_markings.gbapal"); +static const u8 gUnknown_0859E67C[] = INCBIN_U8("graphics/misc/mon_markings.4bpp"); + +static const struct OamData gUnknown_0859EE7C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_0859EE84 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd gUnknown_0859EE8C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EE94[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EE9C[] = +{ + ANIMCMD_FRAME(2, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EEA4[] = +{ + ANIMCMD_FRAME(3, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EEAC[] = +{ + ANIMCMD_FRAME(4, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EEB4[] = +{ + ANIMCMD_FRAME(5, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EEBC[] = +{ + ANIMCMD_FRAME(6, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EEC4[] = +{ + ANIMCMD_FRAME(7, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EECC[] = +{ + ANIMCMD_FRAME(8, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EED4[] = +{ + ANIMCMD_FRAME(9, 5), + ANIMCMD_END, +}; + +static const union AnimCmd *const gUnknown_0859EEDC[] = +{ + gUnknown_0859EE8C, + gUnknown_0859EE94, + gUnknown_0859EE9C, + gUnknown_0859EEA4, + gUnknown_0859EEAC, + gUnknown_0859EEB4, + gUnknown_0859EEBC, + gUnknown_0859EEC4, + gUnknown_0859EECC, + gUnknown_0859EED4, +}; + +static const union AnimCmd gUnknown_0859EF04[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF0C[] = +{ + ANIMCMD_FRAME(64, 5), + ANIMCMD_END, +}; + +static const union AnimCmd *const gUnknown_0859EF14[] = +{ + gUnknown_0859EF04, + gUnknown_0859EF0C, +}; + +static const struct OamData gUnknown_0859EF1C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd gUnknown_0859EF24[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF2C[] = +{ + ANIMCMD_FRAME(4, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF34[] = +{ + ANIMCMD_FRAME(8, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF3C[] = +{ + ANIMCMD_FRAME(12, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF44[] = +{ + ANIMCMD_FRAME(16, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF4C[] = +{ + ANIMCMD_FRAME(20, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF54[] = +{ + ANIMCMD_FRAME(24, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF5C[] = +{ + ANIMCMD_FRAME(28, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF64[] = +{ + ANIMCMD_FRAME(32, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF6C[] = +{ + ANIMCMD_FRAME(36, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF74[] = +{ + ANIMCMD_FRAME(40, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF7C[] = +{ + ANIMCMD_FRAME(44, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF84[] = +{ + ANIMCMD_FRAME(48, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF8C[] = +{ + ANIMCMD_FRAME(52, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF94[] = +{ + ANIMCMD_FRAME(56, 5), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_0859EF9C[] = +{ + ANIMCMD_FRAME(60, 5), + ANIMCMD_END, +}; + +static const union AnimCmd *const gUnknown_0859EFA4[] = +{ + gUnknown_0859EF24, + gUnknown_0859EF2C, + gUnknown_0859EF34, + gUnknown_0859EF3C, + gUnknown_0859EF44, + gUnknown_0859EF4C, + gUnknown_0859EF54, + gUnknown_0859EF5C, + gUnknown_0859EF64, + gUnknown_0859EF6C, + gUnknown_0859EF74, + gUnknown_0859EF7C, + gUnknown_0859EF84, + gUnknown_0859EF8C, + gUnknown_0859EF94, + gUnknown_0859EF9C, +}; + +static EWRAM_DATA struct PokemonMarkMenu *sMenu = NULL; + +void sub_811F90C(struct PokemonMarkMenu *ptr) +{ + sMenu = ptr; +} + +void sub_811F918(void) +{ + const struct TilesPal *frame = GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType); + sMenu->frameTiles = frame->tiles; + sMenu->framePalette = frame->pal; + sMenu->tileLoadState = 0; + CpuFill16(0, sMenu->menuWindowSpriteTiles, sizeof(sMenu->menuWindowSpriteTiles)); +} + +bool8 sub_811F960(void) +{ + u16 i; + u8 *dest = sMenu->menuWindowSpriteTiles + sMenu->tileLoadState * 0x100; + + switch (sMenu->tileLoadState) + { + case 0: + CpuFastCopy(sMenu->frameTiles, dest, TILE_SIZE_4BPP); + for (i = 0; i < 6; i++) + { + CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP, dest + TILE_SIZE_4BPP * (i + 1), TILE_SIZE_4BPP); + } + CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 2, dest + TILE_SIZE_4BPP * 7, TILE_SIZE_4BPP); + sMenu->tileLoadState++; + break; + default: + CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 3, dest, TILE_SIZE_4BPP); + for (i = 0; i < 6; i++) + { + CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 4, dest + TILE_SIZE_4BPP * (i + 1), TILE_SIZE_4BPP); + } + CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 5, dest + TILE_SIZE_4BPP * 7, TILE_SIZE_4BPP); + sMenu->tileLoadState++; + break; + case 13: + CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 6, dest, TILE_SIZE_4BPP); + for (i = 0; i < 6; i++) + { + CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 7, dest + TILE_SIZE_4BPP * (i + 1), TILE_SIZE_4BPP); + } + CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 8, dest + TILE_SIZE_4BPP * 7, TILE_SIZE_4BPP); + sMenu->tileLoadState++; + return FALSE; + case 14: + return FALSE; + } + + return TRUE; +} + +void sub_811FA90(void) +{ + sub_811F918(); + while (sub_811F960()); +} + +void sub_811FAA4(u8 markings, s16 x, s16 y) +{ + u16 i; + sMenu->cursorPos = 0; + sMenu->markings = markings; + for (i = 0; i < 4; i++) + sMenu->markingsArray[i] = (sMenu->markings >> i) & 1; + sub_811FC80(x, y, sMenu->baseTileTag, sMenu->basePaletteTag); +} + +void sub_811FAF8(void) +{ + u16 i; + + for (i = 0; i < 2; i++) + { + FreeSpriteTilesByTag(sMenu->baseTileTag + i); + FreeSpritePaletteByTag(sMenu->basePaletteTag + i); + } + for (i = 0; i < 2; i++) + { + if (!sMenu->menuWindowSprites[i]) + return; + DestroySprite(sMenu->menuWindowSprites[i]); + sMenu->menuWindowSprites[i] = NULL; + } + for (i = 0; i < 4; i++) + { + if (!sMenu->menuMarkingSprites[i]) + return; + DestroySprite(sMenu->menuMarkingSprites[i]); + sMenu->menuMarkingSprites[i] = NULL; + } + if (sMenu->unkSprite) + { + DestroySprite(sMenu->unkSprite); + sMenu->unkSprite = NULL; + } + if (sMenu->menuTextSprite) + { + DestroySprite(sMenu->menuTextSprite); + sMenu->menuTextSprite = NULL; + } +} + + +bool8 sub_811FBA4(void) +{ + u16 i; + + if (gMain.newKeys & DPAD_UP) + { + s8 pos; + PlaySE(SE_SELECT); + pos = --sMenu->cursorPos; + if (pos < 0) + sMenu->cursorPos = 5; + return TRUE; + } + + if (gMain.newKeys & DPAD_DOWN) + { + s8 pos; + PlaySE(SE_SELECT); + pos = ++sMenu->cursorPos; + if (pos > 5) + sMenu->cursorPos = 0; + return TRUE; + } + + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + + switch (sMenu->cursorPos) + { + case 4: + sMenu->markings = 0; + for (i = 0; i < 4; i++) + sMenu->markings |= sMenu->markingsArray[i] << i; + return FALSE; + case 5: + return FALSE; + } + + sMenu->markingsArray[sMenu->cursorPos] = !sMenu->markingsArray[sMenu->cursorPos]; + return TRUE; + } + + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + return FALSE; + } + + return TRUE; +} + +static void sub_811FC80(s16 x, s16 y, u16 baseTileTag, u16 basePaletteTag) +{ + u16 i; + u8 spriteId; + + struct SpriteSheet sheets[] = + { + { sMenu->menuWindowSpriteTiles, 0x1000, baseTileTag }, + { gPokenavConditionMarker_Gfx, 0x320, baseTileTag + 1 }, + { NULL, 0 } + }; + + struct SpritePalette palettes[] = + { + { sMenu->framePalette, basePaletteTag }, + { gPokenavConditionMarker_Pal, basePaletteTag + 1}, + { NULL, 0 } + }; + + struct SpriteTemplate sprTemplate = + { + baseTileTag, + basePaletteTag, + &gUnknown_0859EE7C, + gUnknown_0859EF14, + NULL, + gDummySpriteAffineAnimTable, + TaskDummy7, + }; + + LoadSpriteSheets(sheets); + LoadSpritePalettes(palettes); + + for (i = 0; i < 2; i++) + { + spriteId = CreateSprite(&sprTemplate, x + 32, y + 32, 1); + if (spriteId != 64) + { + sMenu->menuWindowSprites[i] = &gSprites[spriteId]; + StartSpriteAnim(&gSprites[spriteId], i); + } + else + { + sMenu->menuWindowSprites[i] = NULL; + return; + } + } + + sMenu->menuWindowSprites[1]->pos1.y = y + 96; + + sprTemplate.tileTag++; + sprTemplate.paletteTag++; + sprTemplate.anims = gUnknown_0859EEDC; + sprTemplate.callback = sub_811FF40; + sprTemplate.oam = &gUnknown_0859EE84; + + for (i = 0; i < 4; i++) + { + spriteId = CreateSprite(&sprTemplate, x + 32, y + 16 + 16 * i, 0); + if (spriteId != 64) + { + sMenu->menuMarkingSprites[i] = &gSprites[spriteId]; + gSprites[spriteId].data[0] = i; + } + else + { + sMenu->menuMarkingSprites[i] = NULL; + return; + } + } + + sprTemplate.callback = SpriteCallbackDummy; + + spriteId = CreateSprite(&sprTemplate, 0, 0, 0); + + if (spriteId != 64) + { + sMenu->menuTextSprite = &gSprites[spriteId]; + sMenu->menuTextSprite->oam.shape = ST_OAM_SQUARE; + sMenu->menuTextSprite->oam.size = 2; + StartSpriteAnim(sMenu->menuTextSprite, 9); + sMenu->menuTextSprite->pos1.x = x + MENU_TEXT_SPRITE_X_OFFSET; + sMenu->menuTextSprite->pos1.y = y + 80; + CalcCenterToCornerVec(sMenu->menuTextSprite, 1, 2, 0); + } + else + { + sMenu->menuTextSprite = NULL; + } + + sprTemplate.callback = sub_811FF7C; + spriteId = CreateSprite(&sprTemplate, x + 12, 0, 0); + if(spriteId != 64) + { + sMenu->unkSprite = &gSprites[spriteId]; + sMenu->unkSprite->data[0] = y + 16; + StartSpriteAnim(sMenu->unkSprite, 8); + } + else + { + sMenu->unkSprite = NULL; + } + +} + +static void TaskDummy7(struct Sprite *sprite) +{ +} + +static void sub_811FF40(struct Sprite *sprite) +{ + if (sMenu->markingsArray[sprite->data[0]]) + StartSpriteAnim(sprite, 2 * sprite->data[0] + 1); + else + StartSpriteAnim(sprite, 2 * sprite->data[0]); +} + +static void sub_811FF7C(struct Sprite *sprite) +{ + sprite->pos1.y = (16 * sMenu->cursorPos) + sprite->data[0]; +} + +struct Sprite *sub_811FF94(u16 tileTag, u16 paletteTag, const u16 *palette) +{ + if (!palette) + palette = gUnknown_0859E65C; + return sub_811FFD4(tileTag, paletteTag, palette, 16); +} + +struct Sprite *sub_811FFB4(u16 tileTag, u16 paletteTag, const u16 *palette) +{ + if (!palette) + palette = gUnknown_0859E65C; + return sub_811FFD4(tileTag, paletteTag, palette, 1); +} + +static struct Sprite *sub_811FFD4(u16 tileTag, u16 paletteTag, const u16 *palette, u16 size) +{ + u8 spriteId; + struct SpriteTemplate sprTemplate; + struct SpriteSheet sheet = { gUnknown_0859E67C, 0x80, tileTag }; + struct SpritePalette sprPalette = { palette, paletteTag }; + + sprTemplate.tileTag = tileTag; + sprTemplate.paletteTag = paletteTag; + sprTemplate.oam = &gUnknown_0859EF1C; + sprTemplate.anims = gUnknown_0859EFA4; + sprTemplate.images = NULL; + sprTemplate.affineAnims = gDummySpriteAffineAnimTable; + sprTemplate.callback = TaskDummy7; + + sheet.size = size * 0x80; + + LoadSpriteSheet(&sheet); + LoadSpritePalette(&sprPalette); + + spriteId = CreateSprite(&sprTemplate, 0, 0, 0); + if (spriteId != 64) + return &gSprites[spriteId]; + else + return NULL; +} + +void sub_8120084(u8 markings, void *dest) +{ + RequestDma3Copy(gUnknown_0859E67C + markings * 0x80, dest, 0x80, 0x10); +} diff --git a/src/text_window.c b/src/text_window.c index 33cd7cffe..c3b9f7197 100644 --- a/src/text_window.c +++ b/src/text_window.c @@ -7,26 +7,26 @@ #include "graphics.h" // const rom data -const u32 gTextWindowFrame1_Gfx[] = INCBIN_U32("graphics/text_window/1.4bpp"); -static const u32 sTextWindowFrame2_Gfx[] = INCBIN_U32("graphics/text_window/2.4bpp"); -static const u32 sTextWindowFrame3_Gfx[] = INCBIN_U32("graphics/text_window/3.4bpp"); -static const u32 sTextWindowFrame4_Gfx[] = INCBIN_U32("graphics/text_window/4.4bpp"); -static const u32 sTextWindowFrame5_Gfx[] = INCBIN_U32("graphics/text_window/5.4bpp"); -static const u32 sTextWindowFrame6_Gfx[] = INCBIN_U32("graphics/text_window/6.4bpp"); -static const u32 sTextWindowFrame7_Gfx[] = INCBIN_U32("graphics/text_window/7.4bpp"); -static const u32 sTextWindowFrame8_Gfx[] = INCBIN_U32("graphics/text_window/8.4bpp"); -static const u32 sTextWindowFrame9_Gfx[] = INCBIN_U32("graphics/text_window/9.4bpp"); -static const u32 sTextWindowFrame10_Gfx[] = INCBIN_U32("graphics/text_window/10.4bpp"); -static const u32 sTextWindowFrame11_Gfx[] = INCBIN_U32("graphics/text_window/11.4bpp"); -static const u32 sTextWindowFrame12_Gfx[] = INCBIN_U32("graphics/text_window/12.4bpp"); -static const u32 sTextWindowFrame13_Gfx[] = INCBIN_U32("graphics/text_window/13.4bpp"); -static const u32 sTextWindowFrame14_Gfx[] = INCBIN_U32("graphics/text_window/14.4bpp"); -static const u32 sTextWindowFrame15_Gfx[] = INCBIN_U32("graphics/text_window/15.4bpp"); -static const u32 sTextWindowFrame16_Gfx[] = INCBIN_U32("graphics/text_window/16.4bpp"); -static const u32 sTextWindowFrame17_Gfx[] = INCBIN_U32("graphics/text_window/17.4bpp"); -static const u32 sTextWindowFrame18_Gfx[] = INCBIN_U32("graphics/text_window/18.4bpp"); -static const u32 sTextWindowFrame19_Gfx[] = INCBIN_U32("graphics/text_window/19.4bpp"); -static const u32 sTextWindowFrame20_Gfx[] = INCBIN_U32("graphics/text_window/20.4bpp"); +const u8 gTextWindowFrame1_Gfx[] = INCBIN_U8("graphics/text_window/1.4bpp"); +static const u8 sTextWindowFrame2_Gfx[] = INCBIN_U8("graphics/text_window/2.4bpp"); +static const u8 sTextWindowFrame3_Gfx[] = INCBIN_U8("graphics/text_window/3.4bpp"); +static const u8 sTextWindowFrame4_Gfx[] = INCBIN_U8("graphics/text_window/4.4bpp"); +static const u8 sTextWindowFrame5_Gfx[] = INCBIN_U8("graphics/text_window/5.4bpp"); +static const u8 sTextWindowFrame6_Gfx[] = INCBIN_U8("graphics/text_window/6.4bpp"); +static const u8 sTextWindowFrame7_Gfx[] = INCBIN_U8("graphics/text_window/7.4bpp"); +static const u8 sTextWindowFrame8_Gfx[] = INCBIN_U8("graphics/text_window/8.4bpp"); +static const u8 sTextWindowFrame9_Gfx[] = INCBIN_U8("graphics/text_window/9.4bpp"); +static const u8 sTextWindowFrame10_Gfx[] = INCBIN_U8("graphics/text_window/10.4bpp"); +static const u8 sTextWindowFrame11_Gfx[] = INCBIN_U8("graphics/text_window/11.4bpp"); +static const u8 sTextWindowFrame12_Gfx[] = INCBIN_U8("graphics/text_window/12.4bpp"); +static const u8 sTextWindowFrame13_Gfx[] = INCBIN_U8("graphics/text_window/13.4bpp"); +static const u8 sTextWindowFrame14_Gfx[] = INCBIN_U8("graphics/text_window/14.4bpp"); +static const u8 sTextWindowFrame15_Gfx[] = INCBIN_U8("graphics/text_window/15.4bpp"); +static const u8 sTextWindowFrame16_Gfx[] = INCBIN_U8("graphics/text_window/16.4bpp"); +static const u8 sTextWindowFrame17_Gfx[] = INCBIN_U8("graphics/text_window/17.4bpp"); +static const u8 sTextWindowFrame18_Gfx[] = INCBIN_U8("graphics/text_window/18.4bpp"); +static const u8 sTextWindowFrame19_Gfx[] = INCBIN_U8("graphics/text_window/19.4bpp"); +static const u8 sTextWindowFrame20_Gfx[] = INCBIN_U8("graphics/text_window/20.4bpp"); const u16 gTextWindowFrame1_Pal[] = INCBIN_U16("graphics/text_window/1.gbapal"); static const u16 sTextWindowFrame2_Pal[] = INCBIN_U16("graphics/text_window/2.gbapal"); diff --git a/sym_ewram.txt b/sym_ewram.txt index b7f3ebdf3..f84c5c1be 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -556,9 +556,7 @@ gUnknown_0203A11C: @ 203A11C gUnknown_0203A120: @ 203A120 .space 0x4 - -gUnknown_0203A124: @ 203A124 - .space 0x4 + .include "src/mon_markings.o" gUnknown_0203A128: @ 203A128 .space 0x4 |