diff --git a/asm/code_805D8C8.s b/asm/code_805D8C8.s index 0f9a482bf..a3141d8c6 100644 --- a/asm/code_805D8C8.s +++ b/asm/code_805D8C8.s @@ -6,815 +6,6 @@ .text - - - thumb_func_start sub_8065250 -sub_8065250: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC8 - add r5, sp, 0x64 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x60 - bl memset - movs r0, 0x6 - str r0, [sp, 0x68] - add r0, sp, 0x6C - movs r4, 0 - movs r7, 0 - movs r1, 0x2 - mov r9, r1 - mov r1, r9 - strh r1, [r0] - strh r1, [r0, 0x2] - add r0, sp, 0x70 - movs r1, 0x12 - mov r10, r1 - mov r1, r10 - strh r1, [r0] - adds r0, 0x2 - movs r1, 0x10 - mov r8, r1 - mov r1, r8 - strh r1, [r0] - add r0, sp, 0x74 - strh r1, [r0] - add r6, sp, 0xC4 - str r6, [sp, 0x78] - movs r1, 0x3 - str r1, [sp, 0x80] - add r0, sp, 0x94 - str r1, [r0, 0x4] - add r0, sp, 0xAC - str r1, [r0, 0x4] - add r0, sp, 0x4 - adds r1, r5, 0 - movs r2, 0x60 - bl memcpy - movs r0, 0x1 - strb r0, [r6] - strb r4, [r6, 0x1] - strb r4, [r6, 0x3] - ldr r4, _080653D0 - ldr r0, _080653D4 - ldr r0, [r0] - strh r0, [r4, 0x18] - ldr r1, _080653D8 - ldr r0, [r1] - movs r1, 0xCB - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - movs r5, 0x5 - cmp r0, 0 - beq _080652D2 - movs r5, 0x6 -_080652D2: - strh r5, [r4, 0x1A] - strh r5, [r4, 0x1C] - strh r7, [r4, 0x1E] - strh r7, [r4, 0x20] - strh r7, [r4, 0x4] - mov r0, r8 - strh r0, [r4, 0x6] - strh r7, [r4, 0xC] - strh r7, [r4, 0xE] - strh r7, [r4, 0x14] - str r7, [r4] - adds r0, r4, 0 - adds r0, 0x28 - bl sub_801317C - add r0, sp, 0x4 - mov r1, r10 - strh r1, [r0, 0xC] - adds r0, r5, 0 - movs r1, 0xC - bl sub_80095E4 - add r2, sp, 0x4 - adds r1, r2, 0 - adds r0, 0x2 - strh r0, [r1, 0x10] - strh r0, [r2, 0xE] - movs r0, 0xA - strb r0, [r6, 0x2] - adds r0, r1, 0 - mov r1, r9 - strh r1, [r0, 0x8] - movs r1, 0x1 - bl DungeonShowWindows - adds r0, r4, 0 - movs r1, 0 - bl sub_80137B0 - movs r0, 0 - bl sub_80073B8 - movs r5, 0 - ldr r0, _080653DC - ldr r2, [r0] - str r5, [sp] - movs r0, 0x10 - movs r1, 0 - movs r3, 0 - bl PrintFormattedStringOnWindow - adds r0, r4, 0 - movs r1, 0 - bl GetMenuEntryYCoord - adds r1, r0, 0 - ldr r0, _080653E0 - ldr r2, [r0] - str r7, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - adds r0, r4, 0 - movs r1, 0x1 - bl GetMenuEntryYCoord - adds r1, r0, 0 - ldr r0, _080653E4 - ldr r2, [r0] - str r7, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - adds r0, r4, 0 - movs r1, 0x2 - bl GetMenuEntryYCoord - adds r1, r0, 0 - ldr r0, _080653E8 - ldr r2, [r0] - str r7, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - movs r5, 0x4 - adds r0, r4, 0 - movs r1, 0x3 - bl GetMenuEntryYCoord - adds r1, r0, 0 - ldr r0, _080653EC - ldr r2, [r0] - str r7, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - ldr r1, _080653D8 - ldr r0, [r1] - movs r1, 0xCB - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0806540E - bl IsBossFight - lsls r0, 24 - cmp r0, 0 - bne _080653F4 - movs r5, 0x5 - adds r0, r4, 0 - movs r1, 0x4 - bl GetMenuEntryYCoord - adds r1, r0, 0 - ldr r0, _080653F0 - ldr r2, [r0] - str r7, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - b _0806540E - .align 2, 0 -_080653D0: .4byte gDungeonMenu -_080653D4: .4byte gUnknown_202F2E0 -_080653D8: .4byte gDungeon -_080653DC: .4byte gUnknown_80FE8F8 -_080653E0: .4byte gUnknown_80FE9CC -_080653E4: .4byte gUnknown_80FE9E8 -_080653E8: .4byte gUnknown_80FE9F8 -_080653EC: .4byte gUnknown_80FEA10 -_080653F0: .4byte gUnknown_80FEA28 -_080653F4: - movs r5, 0x5 - adds r0, r4, 0 - movs r1, 0x4 - bl GetMenuEntryYCoord - adds r1, r0, 0 - ldr r0, _08065440 - ldr r2, [r0] - str r7, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow -_0806540E: - ldr r0, _08065444 - adds r1, r5, 0 - bl GetMenuEntryYCoord - adds r1, r0, 0 - ldr r0, _08065448 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - movs r0, 0 - bl sub_80073E0 - add sp, 0xC8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08065440: .4byte gUnknown_80FEA44 -_08065444: .4byte gDungeonMenu -_08065448: .4byte gUnknown_80FEA50 - thumb_func_end sub_8065250 - - thumb_func_start sub_806544C -sub_806544C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC8 - add r0, sp, 0x64 - mov r10, r0 - movs r1, 0 - movs r2, 0x60 - bl memset - movs r0, 0x6 - str r0, [sp, 0x68] - add r0, sp, 0x6C - movs r4, 0 - movs r5, 0 - movs r1, 0x2 - mov r9, r1 - mov r2, r9 - strh r2, [r0] - strh r2, [r0, 0x2] - add r0, sp, 0x70 - movs r7, 0x12 - strh r7, [r0] - adds r0, 0x2 - movs r6, 0x10 - strh r6, [r0] - add r0, sp, 0x74 - strh r6, [r0] - add r0, sp, 0xC4 - mov r8, r0 - str r0, [sp, 0x78] - movs r1, 0x3 - str r1, [sp, 0x80] - add r0, sp, 0x94 - str r1, [r0, 0x4] - add r0, sp, 0xAC - str r1, [r0, 0x4] - add r0, sp, 0x4 - mov r1, r10 - movs r2, 0x60 - bl memcpy - movs r0, 0x1 - mov r1, r8 - strb r0, [r1] - strb r4, [r1, 0x1] - strb r4, [r1, 0x3] - ldr r4, _08065568 - strh r5, [r4, 0x18] - mov r2, r9 - strh r2, [r4, 0x1A] - strh r2, [r4, 0x1C] - strh r5, [r4, 0x1E] - strh r5, [r4, 0x20] - strh r5, [r4, 0x4] - strh r6, [r4, 0x6] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - strh r5, [r4, 0x14] - str r5, [r4] - adds r0, r4, 0 - adds r0, 0x28 - bl sub_801317C - add r0, sp, 0x4 - strh r7, [r0, 0xC] - movs r0, 0x2 - movs r1, 0xC - bl sub_80095E4 - add r2, sp, 0x4 - adds r1, r2, 0 - adds r0, 0x2 - strh r0, [r1, 0x10] - strh r0, [r2, 0xE] - movs r0, 0xA - mov r1, r8 - strb r0, [r1, 0x2] - adds r0, r2, 0 - mov r2, r9 - strh r2, [r0, 0x8] - movs r1, 0x1 - bl DungeonShowWindows - adds r0, r4, 0 - movs r1, 0 - bl sub_80137B0 - movs r0, 0 - bl sub_80073B8 - ldr r0, _0806556C - ldr r2, [r0] - str r5, [sp] - movs r0, 0x10 - movs r1, 0 - movs r3, 0 - bl PrintFormattedStringOnWindow - adds r0, r4, 0 - movs r1, 0 - bl GetMenuEntryYCoord - adds r1, r0, 0 - ldr r6, _08065570 - movs r2, 0xAC - lsls r2, 1 - adds r0, r6, r2 - ldr r2, [r0] - str r5, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - adds r0, r4, 0 - movs r1, 0x1 - bl GetMenuEntryYCoord - adds r1, r0, 0 - movs r2, 0xB8 - lsls r2, 1 - adds r0, r6, r2 - ldr r2, [r0] - str r5, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - movs r0, 0 - bl sub_80073E0 - add sp, 0xC8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08065568: .4byte gDungeonMenu -_0806556C: .4byte gUnknown_80FE8F4 -_08065570: .4byte gUnknown_80F7C50 - thumb_func_end sub_806544C - - thumb_func_start sub_8065574 -sub_8065574: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xD4 - add r0, sp, 0x10 - mov r10, r0 - add r7, sp, 0x70 - adds r0, r7, 0 - movs r1, 0 - movs r2, 0x60 - bl memset - movs r0, 0x6 - str r0, [sp, 0x74] - add r0, sp, 0x78 - movs r4, 0 - movs r6, 0 - movs r1, 0x2 - strh r1, [r0] - strh r1, [r0, 0x2] - add r0, sp, 0x7C - movs r1, 0xC - strh r1, [r0] - adds r0, 0x2 - movs r1, 0x10 - mov r9, r1 - mov r1, r9 - strh r1, [r0] - add r0, sp, 0x80 - strh r1, [r0] - add r0, sp, 0x84 - add r1, sp, 0xD0 - mov r8, r1 - str r1, [r0] - add r0, sp, 0x88 - movs r5, 0x3 - str r5, [r0, 0x4] - add r0, sp, 0xA0 - str r5, [r0, 0x4] - add r0, sp, 0xB8 - str r5, [r0, 0x4] - mov r0, r10 - adds r1, r7, 0 - movs r2, 0x60 - bl memcpy - movs r0, 0x1 - mov r1, r8 - strb r0, [r1] - strb r4, [r1, 0x1] - strb r4, [r1, 0x3] - ldr r4, _080656AC - strh r6, [r4, 0x18] - strh r5, [r4, 0x1A] - strh r5, [r4, 0x1C] - strh r6, [r4, 0x1E] - strh r6, [r4, 0x20] - strh r6, [r4, 0x4] - mov r0, r9 - strh r0, [r4, 0x6] - strh r6, [r4, 0xC] - strh r6, [r4, 0xE] - strh r6, [r4, 0x14] - str r6, [r4] - adds r0, r4, 0 - adds r0, 0x28 - bl sub_801317C - movs r0, 0xC - mov r1, r10 - strh r0, [r1, 0xC] - movs r0, 0x3 - movs r1, 0xC - bl sub_80095E4 - adds r0, 0x2 - mov r1, r10 - strh r0, [r1, 0x10] - strh r0, [r1, 0xE] - movs r0, 0xA - mov r1, r8 - strb r0, [r1, 0x2] - movs r1, 0x2 - mov r0, r10 - strh r1, [r0, 0x8] - movs r1, 0x1 - bl DungeonShowWindows - adds r0, r4, 0 - movs r1, 0 - bl sub_80137B0 - adds r0, r4, 0 - movs r1, 0 - bl GetMenuEntryYCoord - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMenuEntryYCoord - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x2 - bl GetMenuEntryYCoord - str r0, [sp, 0xC] - movs r0, 0 - bl sub_80073B8 - ldr r0, _080656B0 - ldr r2, [r0] - str r6, [sp] - movs r0, 0x10 - movs r1, 0 - movs r3, 0 - bl PrintFormattedStringOnWindow - ldr r1, [sp, 0x4] - ldr r0, _080656B4 - ldr r2, [r0] - str r6, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - ldr r1, [sp, 0x8] - ldr r0, _080656B8 - ldr r2, [r0] - str r6, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - ldr r1, [sp, 0xC] - ldr r0, _080656BC - ldr r2, [r0] - str r6, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - movs r0, 0 - bl sub_80073E0 - add sp, 0xD4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080656AC: .4byte gDungeonMenu -_080656B0: .4byte gGameOptionsTextPtr -_080656B4: .4byte gOptionsDungeonTextPtr -_080656B8: .4byte gOptionsOthersTextPtr -_080656BC: .4byte gUnknown_80FE748 - thumb_func_end sub_8065574 - - thumb_func_start sub_80656C0 -sub_80656C0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xDC - add r0, sp, 0x18 - mov r9, r0 - add r7, sp, 0x78 - adds r0, r7, 0 - movs r1, 0 - movs r2, 0x60 - bl memset - movs r0, 0x6 - str r0, [sp, 0x7C] - add r0, sp, 0x80 - movs r5, 0 - movs r1, 0x2 - mov r10, r1 - mov r2, r10 - strh r2, [r0] - strh r2, [r0, 0x2] - add r1, sp, 0x84 - movs r0, 0x12 - strh r0, [r1] - mov r0, sp - adds r0, 0x86 - movs r3, 0x10 - mov r8, r3 - mov r4, r8 - strh r4, [r0] - add r0, sp, 0x88 - strh r4, [r0] - add r0, sp, 0x8C - add r6, sp, 0xD8 - str r6, [r0] - add r0, sp, 0x90 - movs r1, 0x3 - str r1, [r0, 0x4] - add r0, sp, 0xA8 - str r1, [r0, 0x4] - add r0, sp, 0xC0 - str r1, [r0, 0x4] - mov r0, r9 - adds r1, r7, 0 - movs r2, 0x60 - bl memcpy - adds r1, r7, 0 - ldr r0, _0806583C - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x1 - strb r0, [r6] - movs r0, 0 - strb r0, [r6, 0x1] - strb r0, [r6, 0x3] - ldr r4, _08065840 - movs r0, 0x5 - strh r0, [r4, 0x1A] - strh r0, [r4, 0x1C] - strh r5, [r4, 0x1E] - strh r5, [r4, 0x20] - strh r5, [r4, 0x4] - mov r1, r8 - strh r1, [r4, 0x6] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - strh r5, [r4, 0x14] - str r5, [r4] - adds r0, r4, 0 - adds r0, 0x28 - bl sub_801317C - movs r0, 0x18 - mov r2, r9 - strh r0, [r2, 0xC] - movs r0, 0x5 - movs r1, 0xC - bl sub_80095E4 - adds r0, 0x2 - mov r3, r9 - strh r0, [r3, 0x10] - strh r0, [r3, 0xE] - movs r0, 0xA - strb r0, [r6, 0x2] - mov r0, r10 - strh r0, [r3, 0x8] - mov r0, r9 - movs r1, 0x1 - bl DungeonShowWindows - adds r0, r4, 0 - movs r1, 0 - bl sub_80137B0 - adds r0, r4, 0 - movs r1, 0 - bl GetMenuEntryYCoord - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMenuEntryYCoord - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x2 - bl GetMenuEntryYCoord - str r0, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0x3 - bl GetMenuEntryYCoord - str r0, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0x4 - bl GetMenuEntryYCoord - str r0, [sp, 0x14] - movs r0, 0 - bl sub_80073B8 - ldr r0, _08065844 - ldr r2, [r0] - str r5, [sp] - movs r0, 0x10 - movs r1, 0 - movs r3, 0 - bl PrintFormattedStringOnWindow - ldr r1, [sp, 0x4] - ldr r0, _08065848 - ldr r2, [r0] - str r5, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - ldr r1, [sp, 0x8] - ldr r0, _0806584C - ldr r2, [r0] - str r5, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - ldr r1, [sp, 0xC] - ldr r0, _08065850 - ldr r2, [r0] - str r5, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - ldr r1, [sp, 0x10] - ldr r0, _08065854 - ldr r2, [r0] - str r5, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - ldr r1, [sp, 0x14] - ldr r0, _08065858 - ldr r2, [r0] - str r5, [sp] - movs r0, 0x8 - movs r3, 0 - bl PrintFormattedStringOnWindow - ldr r0, _0806585C - ldrb r0, [r0] - adds r4, r7, 0 - cmp r0, 0 - beq _08065860 - ldr r2, [sp, 0x4] - adds r2, 0xA - movs r0, 0x7 - str r0, [sp] - movs r0, 0 - movs r1, 0x88 - movs r3, 0x15 - bl sub_80078A4 - b _08065872 - .align 2, 0 -_0806583C: .4byte gUnknown_8106CE8 -_08065840: .4byte gDungeonMenu -_08065844: .4byte gOptionsDungeonTextPtr -_08065848: .4byte gUnknown_80FE764 -_0806584C: .4byte gUnknown_80FE788 -_08065850: .4byte gUnknown_80FE7A8 -_08065854: .4byte gUnknown_80FE7C0 -_08065858: .4byte gUnknown_80FE7E4 -_0806585C: .4byte gUnknown_202F2E8 -_08065860: - ldr r2, [sp, 0x4] - adds r2, 0xA - movs r0, 0x7 - str r0, [sp] - movs r0, 0 - movs r1, 0x50 - movs r3, 0x16 - bl sub_80078A4 -_08065872: - ldr r0, _08065890 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08065894 - ldr r2, [sp, 0x8] - adds r2, 0xA - movs r0, 0x7 - str r0, [sp] - movs r0, 0 - movs r1, 0x88 - movs r3, 0x16 - bl sub_80078A4 - b _080658A6 - .align 2, 0 -_08065890: .4byte gUnknown_202F2E8 -_08065894: - ldr r2, [sp, 0x8] - adds r2, 0xA - movs r0, 0x7 - str r0, [sp] - movs r0, 0 - movs r1, 0x50 - movs r3, 0x12 - bl sub_80078A4 -_080658A6: - ldr r0, _080658C4 - ldrb r0, [r0, 0x2] - cmp r0, 0 - beq _080658C8 - ldr r2, [sp, 0xC] - adds r2, 0xA - movs r0, 0x7 - str r0, [sp] - movs r0, 0 - movs r1, 0x88 - movs r3, 0x10 - bl sub_80078A4 - b _080658DA - .align 2, 0 -_080658C4: .4byte gUnknown_202F2E8 -_080658C8: - ldr r2, [sp, 0xC] - adds r2, 0xA - movs r0, 0x7 - str r0, [sp] - movs r0, 0 - movs r1, 0x50 - movs r3, 0xC - bl sub_80078A4 -_080658DA: - ldr r0, _080658F8 - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _080658FC - ldr r2, [sp, 0x10] - adds r2, 0xA - movs r0, 0x7 - str r0, [sp] - movs r0, 0 - movs r1, 0x88 - movs r3, 0xC - bl sub_80078A4 - b _0806590E - .align 2, 0 -_080658F8: .4byte gUnknown_202F2E8 -_080658FC: - ldr r2, [sp, 0x10] - adds r2, 0xA - movs r0, 0x7 - str r0, [sp] - movs r0, 0 - movs r1, 0x50 - movs r3, 0x10 - bl sub_80078A4 -_0806590E: - ldr r0, _08065944 - ldrb r1, [r0, 0x4] - lsls r0, r1, 2 - adds r1, r0, r1 - lsls r1, 3 - adds r1, 0x50 - ldr r2, [sp, 0x14] - adds r2, 0xA - adds r0, r4, r0 - ldr r3, [r0] - movs r0, 0x7 - str r0, [sp] - movs r0, 0 - bl sub_80078A4 - movs r0, 0 - bl sub_80073E0 - add sp, 0xDC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08065944: .4byte gUnknown_202F2E8 - thumb_func_end sub_80656C0 - thumb_func_start sub_8065948 sub_8065948: push {r4-r7,lr} @@ -947,7 +138,7 @@ _08065A0A: movs r0, 0x7 str r0, [sp] movs r0, 0 - bl sub_80078A4 + bl AddDoubleUnderScoreHighlight movs r0, 0 bl sub_80073E0 add sp, 0xCC diff --git a/data/data_8106A4C.s b/data/data_8106A4C.s index e8f73d173..261929a6b 100644 --- a/data/data_8106A4C.s +++ b/data/data_8106A4C.s @@ -2,12 +2,6 @@ .align 2,0 - .global gUnknown_8106CE8 -gUnknown_8106CE8: @ 8106CE8 - .byte 0x10, 0x00, 0x00, 0x00 - .byte 0x19, 0x00, 0x00, 0x00 - .byte 0x1b, 0x00, 0x00, 0x00 - .global gUnknown_8106CF4 gUnknown_8106CF4: @ 8106CF4 .byte 0x13, 0x00, 0x00, 0x00 diff --git a/include/structs/str_text.h b/include/structs/str_text.h index 686d85608..7eee2f5f7 100644 --- a/include/structs/str_text.h +++ b/include/structs/str_text.h @@ -4,8 +4,8 @@ // size: 0x48 typedef struct Window { - s16 unk0; - s16 unk2; + s16 x; + s16 y; s16 unk4; s16 unk6; s16 unk8; diff --git a/include/text.h b/include/text.h index ac8b7a4bd..b735bc7e4 100644 --- a/include/text.h +++ b/include/text.h @@ -66,12 +66,12 @@ void SetCharacterMask(int a0); void ShowWindows(const WindowTemplates *windows, bool8 a1, bool8 a2); void RestoreUnkTextStruct_8006518(WindowTemplates *unkData); u32 sub_8006544(u32 index); -void sub_8007334(s32 a0); +void sub_8007334(s32 windowId); void sub_80073B8(s32 a0); void sub_80073E0(s32 a0); u32 xxx_call_draw_char(s32 x, s32 y, u32 a2, u32 color, u32 a4); -void sub_80078A4(u32 a0, s32 x, s32 y, s32 a3, u32 color); -void sub_800792C(u32 a0, s32 x, s32 y, s32 a3, u32 color); +void AddDoubleUnderScoreHighlight(u32 windowId, s32 x, s32 y, s32 width, u32 color); +void AddUnderScoreHighlight(u32 windowId, s32 x, s32 y, s32 width, u32 color); void sub_8007A78(u32 a0, s32 x, s32 y, s32 a3, u32 color); void sub_8007B7C(u32 a0, s32 x, s32 y, s32 a3, u32 color); void sub_8007E20(u32 a0, u32 a1, u32 a2, u32 a3, u32 a4, u32 *a5, u32 a6); diff --git a/src/code_8015080.c b/src/code_8015080.c index 40a86da0e..ba719a8f7 100644 --- a/src/code_8015080.c +++ b/src/code_8015080.c @@ -640,34 +640,34 @@ bool8 sub_8015748(void) void sub_80157D8(void) { - Window *txtPtr = &gWindows[1]; + Window *window = &gWindows[1]; // Note: for cases 4 and 5, the code is identical except for different position structs. if (gUnknown_203B1FC->unk0 == 4) { s32 x, y; - x = gUnknown_80DAFC0[gUnknown_203B1FC->unk1C].x + (txtPtr->unk0 * 8); + x = gUnknown_80DAFC0[gUnknown_203B1FC->unk1C].x + (window->x * 8); SpriteSetX((SpriteOAM *) &gUnknown_203B1FC->sprite1Attribs, x); - y = gUnknown_80DAFC0[gUnknown_203B1FC->unk1C].y + (txtPtr->unk2 * 8) + 5; + y = gUnknown_80DAFC0[gUnknown_203B1FC->unk1C].y + (window->y * 8) + 5; SpriteSetY((SpriteOAM *) &gUnknown_203B1FC->sprite1Attribs, y); } else if (gUnknown_203B1FC->unk0 == 5) { s32 x, y; - x = gUnknown_80DB098[gUnknown_203B1FC->unk1C].x + (txtPtr->unk0 * 8); + x = gUnknown_80DB098[gUnknown_203B1FC->unk1C].x + (window->x * 8); SpriteSetX((SpriteOAM *) &gUnknown_203B1FC->sprite1Attribs, x); - y = gUnknown_80DB098[gUnknown_203B1FC->unk1C].y + (txtPtr->unk2 * 8) + 5; + y = gUnknown_80DB098[gUnknown_203B1FC->unk1C].y + (window->y * 8) + 5; SpriteSetY((SpriteOAM *) &gUnknown_203B1FC->sprite1Attribs, y); } else { s32 x, y; - x = gUnknown_203B1FC->unk1E[gUnknown_203B1FC->unk1C] + (gUnknown_203B1FC->unk8A[gUnknown_203B1FC->unk1C] / 2) + 30 + (txtPtr->unk0 * 8); + x = gUnknown_203B1FC->unk1E[gUnknown_203B1FC->unk1C] + (gUnknown_203B1FC->unk8A[gUnknown_203B1FC->unk1C] / 2) + 30 + (window->x * 8); SpriteSetX((SpriteOAM *) &gUnknown_203B1FC->sprite1Attribs, (u16) x); - y = (txtPtr->unk2 * 8) + 34; + y = (window->y * 8) + 34; SpriteSetY((SpriteOAM *) &gUnknown_203B1FC->sprite1Attribs, y); } } @@ -675,7 +675,7 @@ void sub_80157D8(void) void sub_80158BC(void) { s32 x, y; - Window *txtPtr = &gWindows[0]; + Window *window = &gWindows[0]; u32 var; switch (sub_8012AE8()) { @@ -702,8 +702,8 @@ void sub_80158BC(void) gUnknown_203B1FC->unk17 = 8; } - x = gUnknown_80DB0F8[gUnknown_203B1FC->unk19][gUnknown_203B1FC->unk1A].x + (txtPtr->unk0 * 8) - 5; - y = gUnknown_80DB0F8[gUnknown_203B1FC->unk19][gUnknown_203B1FC->unk1A].y + (txtPtr->unk2 * 8) + 1; + x = gUnknown_80DB0F8[gUnknown_203B1FC->unk19][gUnknown_203B1FC->unk1A].x + (window->x * 8) - 5; + y = gUnknown_80DB0F8[gUnknown_203B1FC->unk19][gUnknown_203B1FC->unk1A].y + (window->y * 8) + 1; SpriteSetX((SpriteOAM *) &gUnknown_203B1FC->sprite2Attribs, x); SpriteSetY((SpriteOAM *) &gUnknown_203B1FC->sprite2Attribs, y); } @@ -769,8 +769,8 @@ void sub_8015A08(u32 unused) } } - sub_800792C(0, 0, 0, 0xE0, 0xE); - sub_800792C(0, 0, 0x47, 0xE0, 0xE); + AddUnderScoreHighlight(0, 0, 0, 0xE0, 0xE); + AddUnderScoreHighlight(0, 0, 0x47, 0xE0, 0xE); sub_8007A78(0, 0, 0, 0x48, 0xE); sub_8007A78(0, 0xDF, 0, 0x48, 0xE); sub_80073E0(0); @@ -783,14 +783,14 @@ void sub_8015C1C(void) CallPrepareTextbox_8008C54(1); sub_80073B8(1); if (gUnknown_203B1FC->unk4 != 0) { - sub_800792C(1, 0, 0, 0xE0, 0xE); - sub_800792C(1, 0, 0x37, 0xE0, 0xE); + AddUnderScoreHighlight(1, 0, 0, 0xE0, 0xE); + AddUnderScoreHighlight(1, 0, 0x37, 0xE0, 0xE); sub_8007A78(1, 0, 0, 0x38, 0xE); sub_8007A78(1, 0xDF, 0, 0x38, 0xE); } else { - sub_800792C(1, 0, 0, 0xB0, 0xE); - sub_800792C(1, 0, 0x27, 0xB0, 0xE); + AddUnderScoreHighlight(1, 0, 0, 0xB0, 0xE); + AddUnderScoreHighlight(1, 0, 0x27, 0xB0, 0xE); sub_8007A78(1, 0, 0, 0x28, 0xE); sub_8007A78(1, 0xAF, 0, 0x28, 0xE); } @@ -827,7 +827,7 @@ void sub_8015C1C(void) case 1: case 2: case 3: - sub_80078A4(1, 38, 33, sub_8016028(), 4); + AddDoubleUnderScoreHighlight(1, 38, 33, sub_8016028(), 4); if (sub_8015FEC(gUnknown_203B1FC->unkF8, gUnknown_203B1FC->unk1B) > sub_8016028()) { sprintfStatic(text, _("{COLOR RED}%s{RESET}"), gUnknown_203B1FC->unkF8); } @@ -850,7 +850,7 @@ void sub_8015E10(u8 *a0, s32 a1, s32 _a2) s32 a2 = (s16) _a2; for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80DAFC0); i++) { - sub_80078A4(a1, gUnknown_80DAFC0[i].x, gUnknown_80DAFC0[i].y + 11 + a2, 11, 5); + AddDoubleUnderScoreHighlight(a1, gUnknown_80DAFC0[i].x, gUnknown_80DAFC0[i].y + 11 + a2, 11, 5); } for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80DAFC0) && a0[i] != 0; i++) { @@ -876,7 +876,7 @@ void sub_8015EB4(u8 *a0, s32 a1, s32 _a2) s32 a2 = (s16) _a2; for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80DB098); i++) { - sub_80078A4(a1, gUnknown_80DB098[i].x, gUnknown_80DB098[i].y + 11 + a2, 12, 5); + AddDoubleUnderScoreHighlight(a1, gUnknown_80DB098[i].x, gUnknown_80DB098[i].y + 11 + a2, 12, 5); } for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80DB098) && a0[i] != 0; i++) { diff --git a/src/code_801EE10.c b/src/code_801EE10.c index 1e7d99c40..ce71e75c9 100644 --- a/src/code_801EE10.c +++ b/src/code_801EE10.c @@ -320,7 +320,7 @@ void sub_801F280(bool8 param_1) linkChain = MoveFlagLinkChain(move); x = !linkChain ? 0x8 : 0xD; if (!linkChain && i != 0) { - sub_800792C(gUnknown_203B270->unk50,0xc,y - 2,0x78,7); + AddUnderScoreHighlight(gUnknown_203B270->unk50,0xc,y - 2,0x78,7); } PrintFormattedStringOnWindow(x,y,gUnknown_80DC2A0,gUnknown_203B270->unk50,0); // {ARG_MOVE_ITEM_0} } diff --git a/src/code_8031D70.c b/src/code_8031D70.c index 1b951474f..987c8e593 100644 --- a/src/code_8031D70.c +++ b/src/code_8031D70.c @@ -170,7 +170,7 @@ void DrawSOSPasswordScreen(void) rowIndex = index % 0x12; x = rowIndex * 0xb + 6; sub_8012C60(x,y,buffer[index],color,gUnknown_203B334->unk10); // Draw character - sub_80078A4(gUnknown_203B334->unk10,x,y + 0xA,10,COLOR_CYAN); // Draw underscore beneath character + AddDoubleUnderScoreHighlight(gUnknown_203B334->unk10,x,y + 0xA,10,COLOR_CYAN); // Draw underscore beneath character } sub_80073E0(gUnknown_203B334->unk10); } diff --git a/src/code_805D8C8.c b/src/code_805D8C8.c index 93755abac..87f3c0b39 100644 --- a/src/code_805D8C8.c +++ b/src/code_805D8C8.c @@ -39,7 +39,7 @@ void sub_8068310(s32 size, u16 **param_2) void sub_8068344(void) { if ((gDungeonFramesCounter & 8) != 0) { - Window *ptr = &gWindows[0]; + Window *window = &gWindows[0]; SpriteOAM sprite = {0}; SpriteSetAffine1(&sprite, 0); @@ -53,8 +53,8 @@ void sub_8068344(void) SpriteSetTileNum(&sprite, 0x3F0); SpriteSetPriority(&sprite, 0); SpriteSetPalNum(&sprite, 15); - SpriteSetY(&sprite, (ptr->unk2 * 8) + 0x8); - SpriteSetX(&sprite, (ptr->unk0 * 8) + 0x40); + SpriteSetY(&sprite, (window->y * 8) + 0x8); + SpriteSetX(&sprite, (window->x * 8) + 0x40); AddSprite(&sprite,0x100,NULL,NULL); } } @@ -63,7 +63,7 @@ void sub_8068344(void) void sub_80684C4(void) { if ((gDungeonFramesCounter & 8) != 0) { - Window *ptr = &gWindows[0]; + Window *window = &gWindows[0]; SpriteOAM sprite = {0}; SpriteSetAffine1(&sprite, 0); @@ -77,8 +77,8 @@ void sub_80684C4(void) SpriteSetTileNum(&sprite, 0x3F0); SpriteSetPriority(&sprite, 0); SpriteSetPalNum(&sprite, 15); - SpriteSetY(&sprite, (ptr->unk2 * 8) + 0x70); - SpriteSetX(&sprite, (ptr->unk0 * 8) + 0x40); + SpriteSetY(&sprite, (window->y * 8) + 0x70); + SpriteSetX(&sprite, (window->x * 8) + 0x40); AddSprite(&sprite,0x100,NULL,NULL); } } diff --git a/src/code_8066D04.c b/src/code_8066D04.c index 240eee648..1aef855c1 100644 --- a/src/code_8066D04.c +++ b/src/code_8066D04.c @@ -1295,8 +1295,8 @@ void sub_806806C(PokemonStruct1 *a0) sub_808FF20(&unkStruct, a0, gDungeon->unk644.unk16); CreatePokemonInfoTabScreen(spF8[r7], r7, &unkStruct, &var_C8, 0); - gDungeonMenu.unkC = (gWindows[0].unk0 + 15) * 8; - gDungeonMenu.unkE = ((gWindows[0].unk2 + 1) * 8) - 2; + gDungeonMenu.unkC = (gWindows[0].x + 15) * 8; + gDungeonMenu.unkE = ((gWindows[0].y + 1) * 8) - 2; while (1) { s32 r5; diff --git a/src/dungeon_menu_items.c b/src/dungeon_menu_items.c index 8a4527921..2ee3ce904 100644 --- a/src/dungeon_menu_items.c +++ b/src/dungeon_menu_items.c @@ -448,8 +448,8 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b DungeonShowWindows(windows, 1); txtStrPtr = &gWindows[0]; - gDungeonMenu.unkC = (txtStrPtr->unk0 + 0x10) * 8; - gDungeonMenu.unkE = ((txtStrPtr->unk2 + 1) * 8) - 2; + gDungeonMenu.unkC = (txtStrPtr->x + 0x10) * 8; + gDungeonMenu.unkE = ((txtStrPtr->y + 1) * 8) - 2; sub_80137B0(&gDungeonMenu, 0x70); sub_80073B8(0); x = ((a0 - r10) * 8) + 0xC; diff --git a/src/dungeon_menu_moves.c b/src/dungeon_menu_moves.c index 0b6f06b44..7fadce616 100644 --- a/src/dungeon_menu_moves.c +++ b/src/dungeon_menu_moves.c @@ -472,8 +472,8 @@ static void ShowMovesMenuWindows(Entity *entity, EntityInfo *entInfo, u8 a2, Win windows->id[2] = windowNew; DungeonShowWindows(windows, TRUE); sub_80137B0(&gDungeonMenu, 0); - gDungeonMenu.unkC = (gWindows[0].unk0 + 16) * 8; - gDungeonMenu.unkE = ((gWindows[0].unk2 + 1) * 8) - 2; + gDungeonMenu.unkC = (gWindows[0].x + 16) * 8; + gDungeonMenu.unkE = ((gWindows[0].y + 1) * 8) - 2; SetMessageArgument_2(gFormatBuffer_Monsters[0], entInfo, 0); for (i = 0; i < MAX_MON_MOVES; i++) { Move *move = &entInfo->moves.moves[i]; @@ -525,7 +525,7 @@ static void PrintMoveNamesOnWindow(s32 count, Entity *entity, Move *moves, s32 w else { x = 8; if (i != 0) { - sub_80078A4(windowId, 12, y - 2, 120, 7); + AddDoubleUnderScoreHighlight(windowId, 12, y - 2, 120, 7); } } PrintFormattedStringOnWindow(x, y, _("{MOVE_ITEM_0}"), windowId, '\0'); @@ -644,8 +644,8 @@ static void ShowMovesInfoWindow(Move *moves, s32 firstMoveId, s32 movesCount) gDungeonMenu.unk1E = currId; gDungeonMenu.unk20 = count; - gDungeonMenu.unkC = (gWindows[0].unk0 + 23) * 8; - gDungeonMenu.unkE = ((gWindows[0].unk2 + 1) * 8) - 2; + gDungeonMenu.unkC = (gWindows[0].x + 23) * 8; + gDungeonMenu.unkE = ((gWindows[0].y + 1) * 8) - 2; gDungeonMenu.unk14.x = 0; gDungeonMenu.unk4 = 0; gDungeonMenu.firstEntryY = 16; diff --git a/src/dungeon_menu_others.c b/src/dungeon_menu_others.c index a4ecae4a1..ceccb4f5d 100644 --- a/src/dungeon_menu_others.c +++ b/src/dungeon_menu_others.c @@ -44,8 +44,26 @@ extern const u8 *const gUnknown_80FEBF8; extern const u8 *const gUnknown_80FEC28; extern const u8 *const gUnknown_80FDE6C; extern const u8 *const gUnknown_80FDEB8; +extern const u8 *const gUnknown_80FEA44; +extern const u8 *const gUnknown_80FEA50; +extern const u8 *const gUnknown_80FEA28; +extern const u8 *const gUnknown_80FEA10; +extern const u8 *const gUnknown_80FE9F8; +extern const u8 *const gUnknown_80FE9E8; +extern const u8 *const gUnknown_80FE9CC; +extern const u8 *const gUnknown_80FE8F8; +extern const u8 *const gUnknown_80FE8F4; +extern const u8 *const gGameOptionsTextPtr; +extern const u8 *const gOptionsDungeonTextPtr; +extern const u8 *const gOptionsOthersTextPtr; +extern const u8 *const gUnknown_80FE748; +extern const u8 *const gUnknown_80FE764; +extern const u8 *const gUnknown_80FE7C0; +extern const u8 *const gUnknown_80FE788; +extern const u8 *const gUnknown_80FE7A8; +extern const u8 *const gUnknown_80FE7E4; -void sub_8065250(void); +void PrintOthersMenuOptions(void); void ShowGameOptionsMenu(void); void ShowQuickSaveGiveUpMenu(void); void ShowMissionObjectivesMenu(void); @@ -55,8 +73,8 @@ bool8 ShowDungeonOptions(void); bool8 ShowOthersOptions(void); void TrySetNewGameOptions(bool8 bPressed); void AskToResetToDefault(void); -void sub_8065574(void); -void sub_80656C0(void); +void PrintGameOptions(void); +void PrintDungeonOptions(void); void sub_8065948(void); void sub_8065A8C(s32 optionId); void sub_8065B3C(s32 optionId); @@ -64,7 +82,7 @@ bool8 sub_8065BEC(void); bool8 sub_8065BF0(void); bool8 AskToQuickSave(void); bool8 AskToGiveUp(void); -void sub_806544C(void); +void PrintQuickSaveMenuOptions(void); enum { OTHERS_GAME_OPTIONS, @@ -73,6 +91,7 @@ enum { OTHERS_MISSION_OBJECTIVES, OTHERS_RECRUITMENT_SEARCH, OTHERS_HINTS, + OTHERS_COUNT }; void ShowDungeonOthersMenu(void) @@ -85,7 +104,7 @@ void ShowDungeonOthersMenu(void) while (1) { bool8 bPress = FALSE; - sub_8065250(); + PrintOthersMenuOptions(); while (1) { AddMenuCursorSprite(&gDungeonMenu); DungeonRunFrameActions(0x24); @@ -162,7 +181,7 @@ void ShowGameOptionsMenu(void) while (1) { bool8 bPress = FALSE; - sub_8065574(); + PrintGameOptions(); while (1) { AddMenuCursorSprite(&gDungeonMenu); DungeonRunFrameActions(0x24); @@ -217,7 +236,7 @@ enum { OPTION_WINDOWS, }; -#define FIRST_OTHERS_OPTION OPTION_WINDOWS +#define DUNGEON_OPTIONS_COUNT OPTION_WINDOWS bool8 ShowDungeonOptions(void) { @@ -229,7 +248,7 @@ bool8 ShowDungeonOptions(void) bPress = FALSE; dpadMoved = FALSE; - sub_80656C0(); + PrintDungeonOptions(); while (1) { AddMenuCursorSprite(&gDungeonMenu); DungeonRunFrameActions(0x24); @@ -305,13 +324,13 @@ bool8 ShowOthersOptions(void) if (gRealInputs.repeated & DPAD_LEFT) { PlayDungeonCursorSE(FALSE); - sub_8065A8C(gDungeonMenu.menuIndex + FIRST_OTHERS_OPTION); + sub_8065A8C(gDungeonMenu.menuIndex + DUNGEON_OPTIONS_COUNT); dpadMoved = TRUE; break; } if (gRealInputs.repeated & DPAD_RIGHT) { PlayDungeonCursorSE(FALSE); - sub_8065B3C(gDungeonMenu.menuIndex + FIRST_OTHERS_OPTION); + sub_8065B3C(gDungeonMenu.menuIndex + DUNGEON_OPTIONS_COUNT); dpadMoved = TRUE; break; } @@ -376,7 +395,7 @@ void ShowQuickSaveGiveUpMenu(void) while (1) { bool8 bPress = FALSE; - sub_806544C(); + PrintQuickSaveMenuOptions(); while (1) { AddMenuCursorSprite(&gDungeonMenu); DungeonRunFrameActions(0x24); @@ -449,4 +468,275 @@ bool8 AskToGiveUp(void) return FALSE; } +void PrintOthersMenuOptions(void) +{ + s32 optionsCount, currOptionId; + WindowHeader header; + WindowTemplates windows = { + .id = { + [0] = { + .type = WINDOW_TYPE_WITH_HEADER, + .pos = {2, 2}, + .width = 18, + .height = 16, + .unk10 = 16, + .unk12 = 0, + .header = &header, + }, + [1] = WINDOW_DUMMY, + [2] = WINDOW_DUMMY, + [3] = WINDOW_DUMMY, + } + }; + + header.count = 1; + header.currId = 0; + header.f3 = 0; + gDungeonMenu.menuIndex = gUnknown_202F2E0; + optionsCount = (gDungeon->unk644.canRecruit) ? OTHERS_COUNT : OTHERS_COUNT - 1; + gDungeonMenu.unk1A = optionsCount; + gDungeonMenu.unk1C = optionsCount; + gDungeonMenu.unk1E = 0; + gDungeonMenu.unk20 = 0; + gDungeonMenu.unk4 = 0; + gDungeonMenu.firstEntryY = 16; + gDungeonMenu.unkC = 0; + gDungeonMenu.unkE = 0; + gDungeonMenu.unk14.x = 0; + gDungeonMenu.unk0 = 0; + sub_801317C(&gDungeonMenu.unk28); + windows.id[0].width = 18; + windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2; + header.width = 10; + windows.id[0].pos.x = 2; + DungeonShowWindows(&windows, TRUE); + sub_80137B0(&gDungeonMenu, 0); + sub_80073B8(0); + currOptionId = 0; + PrintFormattedStringOnWindow(16, 0, gUnknown_80FE8F8, 0, '\0'); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gDungeonMenu, currOptionId++), gUnknown_80FE9CC, 0, '\0'); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gDungeonMenu, currOptionId++), gUnknown_80FE9E8, 0, '\0'); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gDungeonMenu, currOptionId++), gUnknown_80FE9F8, 0, '\0'); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gDungeonMenu, currOptionId++), gUnknown_80FEA10, 0, '\0'); + if (gDungeon->unk644.canRecruit) { + if (!IsBossFight()) { + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gDungeonMenu, currOptionId++), gUnknown_80FEA28, 0, '\0'); + } + else { + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gDungeonMenu, currOptionId++), gUnknown_80FEA44, 0, '\0'); + } + } + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gDungeonMenu, currOptionId), gUnknown_80FEA50, 0, '\0'); + + sub_80073E0(0); +} + +struct Struct_80F7C50 +{ + const u8 *str; + s32 val; +}; + +// TODO: Fix this table in other file + +extern const struct Struct_80F7C50 gUnknown_80F7C50[]; + +void PrintQuickSaveMenuOptions(void) +{ + s32 optionsCount, currOptionId; + WindowHeader header; + WindowTemplates windows = { + .id = { + [0] = { + .type = WINDOW_TYPE_WITH_HEADER, + .pos = {2, 2}, + .width = 18, + .height = 16, + .unk10 = 16, + .unk12 = 0, + .header = &header, + }, + [1] = WINDOW_DUMMY, + [2] = WINDOW_DUMMY, + [3] = WINDOW_DUMMY, + } + }; + + header.count = 1; + header.currId = 0; + header.f3 = 0; + gDungeonMenu.menuIndex = 0; + optionsCount = 2; + gDungeonMenu.unk1A = optionsCount; + gDungeonMenu.unk1C = optionsCount; + gDungeonMenu.unk1E = 0; + gDungeonMenu.unk20 = 0; + gDungeonMenu.unk4 = 0; + gDungeonMenu.firstEntryY = 16; + gDungeonMenu.unkC = 0; + gDungeonMenu.unkE = 0; + gDungeonMenu.unk14.x = 0; + gDungeonMenu.unk0 = 0; + sub_801317C(&gDungeonMenu.unk28); + windows.id[0].width = 18; + windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2; + header.width = 10; + windows.id[0].pos.x = 2; + DungeonShowWindows(&windows, TRUE); + sub_80137B0(&gDungeonMenu, 0); + sub_80073B8(0); + currOptionId = 0; + PrintFormattedStringOnWindow(16, 0, gUnknown_80FE8F4, 0, '\0'); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gDungeonMenu, currOptionId++), gUnknown_80F7C50[43].str, 0, '\0'); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gDungeonMenu, currOptionId++), gUnknown_80F7C50[46].str, 0, '\0'); + + sub_80073E0(0); +} + +void PrintGameOptions(void) +{ + s32 optionsCount; + s32 y[3]; + WindowHeader header; + WindowTemplates windows = { + .id = { + [0] = { + .type = WINDOW_TYPE_WITH_HEADER, + .pos = {2, 2}, + .width = 12, + .height = 16, + .unk10 = 16, + .unk12 = 0, + .header = &header, + }, + [1] = WINDOW_DUMMY, + [2] = WINDOW_DUMMY, + [3] = WINDOW_DUMMY, + } + }; + + header.count = 1; + header.currId = 0; + header.f3 = 0; + gDungeonMenu.menuIndex = 0; + optionsCount = 3; + gDungeonMenu.unk1A = optionsCount; + gDungeonMenu.unk1C = optionsCount; + gDungeonMenu.unk1E = 0; + gDungeonMenu.unk20 = 0; + gDungeonMenu.unk4 = 0; + gDungeonMenu.firstEntryY = 16; + gDungeonMenu.unkC = 0; + gDungeonMenu.unkE = 0; + gDungeonMenu.unk14.x = 0; + gDungeonMenu.unk0 = 0; + sub_801317C(&gDungeonMenu.unk28); + windows.id[0].width = 12; + windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2; + header.width = 10; + windows.id[0].pos.x = 2; + DungeonShowWindows(&windows, TRUE); + sub_80137B0(&gDungeonMenu, 0); + + y[0] = GetMenuEntryYCoord(&gDungeonMenu, 0); + y[1] = GetMenuEntryYCoord(&gDungeonMenu, 1); + y[2] = GetMenuEntryYCoord(&gDungeonMenu, 2); + sub_80073B8(0); + PrintFormattedStringOnWindow(16, 0, gGameOptionsTextPtr, 0, '\0'); + PrintFormattedStringOnWindow(8, y[0], gOptionsDungeonTextPtr, 0, '\0'); + PrintFormattedStringOnWindow(8, y[1], gOptionsOthersTextPtr, 0, '\0'); + PrintFormattedStringOnWindow(8, y[2], gUnknown_80FE748, 0, '\0'); + sub_80073E0(0); +} + +void PrintDungeonOptions(void) +{ + s32 y[DUNGEON_OPTIONS_COUNT]; + WindowHeader header; + WindowTemplates windows = { + .id = { + [0] = { + .type = WINDOW_TYPE_WITH_HEADER, + .pos = {2, 2}, + .width = 18, + .height = 16, + .unk10 = 16, + .unk12 = 0, + .header = &header, + }, + [1] = WINDOW_DUMMY, + [2] = WINDOW_DUMMY, + [3] = WINDOW_DUMMY, + } + }; + s32 arr[] = {16, 25, 27}; + + header.count = 1; + header.currId = 0; + header.f3 = 0; + + gDungeonMenu.unk1A = DUNGEON_OPTIONS_COUNT; + gDungeonMenu.unk1C = DUNGEON_OPTIONS_COUNT; + gDungeonMenu.unk1E = 0; + gDungeonMenu.unk20 = 0; + gDungeonMenu.unk4 = 0; + gDungeonMenu.firstEntryY = 16; + gDungeonMenu.unkC = 0; + gDungeonMenu.unkE = 0; + gDungeonMenu.unk14.x = 0; + gDungeonMenu.unk0 = 0; + sub_801317C(&gDungeonMenu.unk28); + windows.id[0].width = 24; + windows.id[0].height = windows.id[0].unk10 = sub_80095E4(DUNGEON_OPTIONS_COUNT, 12) + 2; + header.width = 10; + windows.id[0].pos.x = 2; + DungeonShowWindows(&windows, TRUE); + sub_80137B0(&gDungeonMenu, 0); + + y[0] = GetMenuEntryYCoord(&gDungeonMenu, 0); + y[1] = GetMenuEntryYCoord(&gDungeonMenu, 1); + y[2] = GetMenuEntryYCoord(&gDungeonMenu, 2); + y[3] = GetMenuEntryYCoord(&gDungeonMenu, 3); + y[4] = GetMenuEntryYCoord(&gDungeonMenu, 4); + sub_80073B8(0); + PrintFormattedStringOnWindow(16, 0, gOptionsDungeonTextPtr, 0, '\0'); + PrintFormattedStringOnWindow(8, y[0], gUnknown_80FE764, 0, '\0'); + PrintFormattedStringOnWindow(8, y[1], gUnknown_80FE788, 0, '\0'); + PrintFormattedStringOnWindow(8, y[2], gUnknown_80FE7A8, 0, '\0'); + PrintFormattedStringOnWindow(8, y[3], gUnknown_80FE7C0, 0, '\0'); + PrintFormattedStringOnWindow(8, y[4], gUnknown_80FE7E4, 0, '\0'); + + if (gUnknown_202F2E8.dungeonSpeed != DUNGEON_SPEED_SLOW) { + AddDoubleUnderScoreHighlight(0, 136, y[0] + 10, 21, 7); + } + else { + AddDoubleUnderScoreHighlight(0, 80, y[0] + 10, 22, 7); + } + + if (gUnknown_202F2E8.FarOffPals != FAROFFPALS_SELF) { + AddDoubleUnderScoreHighlight(0, 136, y[1] + 10, 22, 7); + } + else { + AddDoubleUnderScoreHighlight(0, 80, y[1] + 10, 18, 7); + } + + if (gUnknown_202F2E8.damageTurn) { + AddDoubleUnderScoreHighlight(0, 136, y[2] + 10, 16, 7); + } + else { + AddDoubleUnderScoreHighlight(0, 80, y[2] + 10, 12, 7); + } + + if (gUnknown_202F2E8.gridEnable) { + AddDoubleUnderScoreHighlight(0, 136, y[3] + 10, 12, 7); + } + else { + AddDoubleUnderScoreHighlight(0, 80, y[3] + 10, 16, 7); + } + + AddDoubleUnderScoreHighlight(0, 80 + (gUnknown_202F2E8.mapOption * 40), y[4] + 10, arr[gUnknown_202F2E8.mapOption], 7); + + sub_80073E0(0); +} + // diff --git a/src/dungeon_menu_team.c b/src/dungeon_menu_team.c index d19d678a0..c1a572ede 100644 --- a/src/dungeon_menu_team.c +++ b/src/dungeon_menu_team.c @@ -810,7 +810,7 @@ void ShowDungeonSummaryOrIQMenu(ActionContainer *a0, bool8 showIq) bool8 hasIqSkills = FALSE; bool8 hasStatusProblems = FALSE; bool8 addCursorSprite = TRUE; - Window *unkTxtStr1Ptr = &gWindows[0]; + Window *mainWindow = &gWindows[0]; sTeamWindowHeader.count = totalSubWindows; sTeamWindowHeader.currId = currSubWindowId; @@ -821,8 +821,8 @@ void ShowDungeonSummaryOrIQMenu(ActionContainer *a0, bool8 showIq) CreatePokemonInfoTabScreen(subWindowIds[currSubWindowId], currSubWindowId, &unkMonStruct, &unkInfoTabStruct, 0); gDungeonMenu.unk1E = currSubWindowId; gDungeonMenu.unk20 = totalSubWindows; - gDungeonMenu.unkC = (unkTxtStr1Ptr->unk0 + 15) * 8; - gDungeonMenu.unkE = ((unkTxtStr1Ptr->unk2 + 1) * 8) - 2; + gDungeonMenu.unkC = (mainWindow->x + 15) * 8; + gDungeonMenu.unkE = ((mainWindow->y + 1) * 8) - 2; gDungeonMenu.unk14.x = 0; gDungeonMenu.unk4 = 0; gDungeonMenu.firstEntryY = 16; @@ -1197,7 +1197,7 @@ void ShowDungeonSummaryOrIQMenu(ActionContainer *a0, bool8 showIq) static void ShowUpArrowSprite(void) { if ((gDungeonFramesCounter & 8) != 0) { - Window *txtStrPtr = &gWindows[0]; + Window *window = &gWindows[0]; SpriteOAM sprite = {0}; SpriteSetAffine1(&sprite, 0); @@ -1211,8 +1211,8 @@ static void ShowUpArrowSprite(void) SpriteSetTileNum(&sprite, 0x3F0); SpriteSetPriority(&sprite, 0); SpriteSetPalNum(&sprite, 15); - SpriteSetY(&sprite, (txtStrPtr->unk2 * 8) + 0x8); - SpriteSetX(&sprite, (txtStrPtr->unk0 * 8) + 0x40); + SpriteSetY(&sprite, (window->y * 8) + 0x8); + SpriteSetX(&sprite, (window->x * 8) + 0x40); AddSprite(&sprite, 0x100, NULL, NULL); } @@ -1222,7 +1222,7 @@ static void ShowUpArrowSprite(void) static void ShowDownArrowSprite(void) { if ((gDungeonFramesCounter & 8) != 0) { - Window *ptr = &gWindows[0]; + Window *window = &gWindows[0]; SpriteOAM sprite = {0}; SpriteSetAffine1(&sprite, 0); @@ -1236,8 +1236,8 @@ static void ShowDownArrowSprite(void) SpriteSetTileNum(&sprite, 0x3F0); SpriteSetPriority(&sprite, 0); SpriteSetPalNum(&sprite, 15); - SpriteSetY(&sprite, (ptr->unk2 * 8) + 0x70); - SpriteSetX(&sprite, (ptr->unk0 * 8) + 0x40); + SpriteSetY(&sprite, (window->y * 8) + 0x70); + SpriteSetX(&sprite, (window->x * 8) + 0x40); AddSprite(&sprite,0x100,NULL,NULL); } } @@ -1245,7 +1245,7 @@ static void ShowDownArrowSprite(void) void ShowStatusDescriptionMenuArrow(void) { if ((gDungeonFramesCounter & 8) != 0) { - Window *ptr = &gWindows[0]; + Window *window = &gWindows[0]; SpriteSetAffine1(&gUnknown_202F268, 0); SpriteSetAffine2(&gUnknown_202F268, 0); @@ -1258,7 +1258,7 @@ void ShowStatusDescriptionMenuArrow(void) SpriteSetTileNum(&gUnknown_202F268, 0x3F0); SpriteSetPriority(&gUnknown_202F268, 0); SpriteSetPalNum(&gUnknown_202F268, 15); - SpriteSetY(&gUnknown_202F268, (ptr->unk2 * 8) + 0x60); + SpriteSetY(&gUnknown_202F268, (window->y * 8) + 0x60); SpriteSetX(&gUnknown_202F268, 0x70); AddSprite(&gUnknown_202F268,0x100,NULL,NULL); } @@ -1616,7 +1616,7 @@ static void PrintMoveNamesOnBottomWindow(Entity *entity) else { x = 8; if (i != 0) { - sub_80078A4(2, 12, y - 2, 120, 7); + AddDoubleUnderScoreHighlight(2, 12, y - 2, 120, 7); } } PrintFormattedStringOnWindow(x, y, _("{MOVE_ITEM_0}"), 2, '\0'); diff --git a/src/dungeon_message.c b/src/dungeon_message.c index 15c821c3b..2b8b37720 100644 --- a/src/dungeon_message.c +++ b/src/dungeon_message.c @@ -255,7 +255,7 @@ void xxx_draw_string_80524F0(void) sp.unk10 = 7; sub_80073B8(0); if (strPtr->unk1C054[id] != 0 && strPtr->unk1C066 >= 8) { - sub_80078A4(0, 0, strPtr->unk1C066 - 1, 0xE0, 7); + AddDoubleUnderScoreHighlight(0, 0, strPtr->unk1C066 - 1, 0xE0, 7); } while (1) { @@ -930,7 +930,7 @@ static void PutStringsOnMessageLog(void) if (msgLogString->unk0) { if (msgLogString->unk1) { - sub_80078A4(0, 0, y, 0xE0, 7); + AddDoubleUnderScoreHighlight(0, 0, y, 0xE0, 7); } PrintStringOnWindow(8, y + 3, msgLogString->str, 0, 0xD); y += 14; @@ -978,7 +978,7 @@ static bool8 TryScrollLogUp(s32 a0) if (msgLogString->unk0) { sub_80087EC(0, 0, 0, 0xD0, 0x10); if (msgLogString->unk1) { - sub_80078A4(0, 0, y, 0xE0, 7); + AddDoubleUnderScoreHighlight(0, 0, y, 0xE0, 7); } PrintStringOnWindow(8, y + 3, msgLogString->str, 0, 0xD); } @@ -1028,7 +1028,7 @@ static bool8 TryScrollLogDown(s32 a0) if (msgLogString->unk0) { sub_80087EC(0, 0, y, 0x68, 0x10); if (msgLogString->unk1) { - sub_80078A4(0, 0, y, 0xE0, 7); + AddDoubleUnderScoreHighlight(0, 0, y, 0xE0, 7); } PrintStringOnWindow(8, y + 3, msgLogString->str, 0, 0xD); } @@ -1046,7 +1046,7 @@ static bool8 TryScrollLogDown(s32 a0) static void CreateMessageLogArrow(bool8 upArrow, s32 y) { - struct Window *unkStr = &gWindows[0]; + struct Window *window = &gWindows[0]; if (!(gDungeonFramesCounter & 8)) { SpriteSetAffine1(&sMessageLogArrowSpriteOAM, 0); SpriteSetAffine2(&sMessageLogArrowSpriteOAM, 0); @@ -1055,8 +1055,8 @@ static void CreateMessageLogArrow(bool8 upArrow, s32 y) SpriteSetBpp(&sMessageLogArrowSpriteOAM, 0); SpriteSetMatrixNum(&sMessageLogArrowSpriteOAM, (upArrow != FALSE) ? (16) : 0); SpriteSetPalNum(&sMessageLogArrowSpriteOAM, 15); - SpriteSetY(&sMessageLogArrowSpriteOAM, (unkStr->unk2 * 8) + y); - SpriteSetX(&sMessageLogArrowSpriteOAM, (unkStr->unk0 * 8) + 92); + SpriteSetY(&sMessageLogArrowSpriteOAM, (window->y * 8) + y); + SpriteSetX(&sMessageLogArrowSpriteOAM, (window->x * 8) + 92); SpriteSetShape(&sMessageLogArrowSpriteOAM, 1); SpriteSetSize(&sMessageLogArrowSpriteOAM, 0); SpriteSetPriority(&sMessageLogArrowSpriteOAM, 0); diff --git a/src/items.c b/src/items.c index f8cc8f8a5..fa898c3b8 100644 --- a/src/items.c +++ b/src/items.c @@ -654,7 +654,7 @@ u32 sub_80913E0(Item* slot, u32 a2, struct subStruct_203B240 ** a3) u32 result; InitPokemonMove(buffer8, move); - sub_80078A4(a2, 4, 82, 200, COLOR_WHITE_2); + AddDoubleUnderScoreHighlight(a2, 4, 82, 200, COLOR_WHITE_2); PrintFormattedStringOnWindow(4, 84, gPtrTypeText, a2, 0); moves_data = GetMoveType(buffer8); typestring = GetUnformattedTypeString(moves_data); diff --git a/src/menu_input.c b/src/menu_input.c index 91603ba4b..efc42afec 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -700,12 +700,12 @@ void sub_8013660(MenuInputStruct *param_1) void UpdateMenuCursorSpriteCoords(MenuInputStruct *param_1) { s32 index; - Window *temp; + Window *window; index = param_1->unk0; - temp = &gWindows[index]; - param_1->unk8.x = temp->unk0 * 8 + param_1->unk4; - param_1->unk8.y = temp->unk2 * 8 + GetMenuEntryYCoord(param_1, param_1->menuIndex); + window = &gWindows[index]; + param_1->unk8.x = window->x * 8 + param_1->unk4; + param_1->unk8.y = window->y * 8 + GetMenuEntryYCoord(param_1, param_1->menuIndex); } void MoveMenuCursorDown(MenuInputStruct *param_1) @@ -931,10 +931,10 @@ void sub_8013984(MenuInputStruct *param_1) { s32 iVar2; s32 iVar4; - Window *ptr; + Window *window; iVar4 = param_1->unk0; - ptr = &gWindows[iVar4]; + window = &gWindows[iVar4]; if (param_1->unk1C == 0) param_1->unk1C++; @@ -957,7 +957,7 @@ void sub_8013984(MenuInputStruct *param_1) param_1->unk4 = 0; - if (ptr->unkC == 6) + if (window->unkC == 6) param_1->firstEntryY = 16; else param_1->firstEntryY = 0; @@ -965,9 +965,9 @@ void sub_8013984(MenuInputStruct *param_1) if (param_1->unk20 < 2) param_1->unkC = 0; else - param_1->unkC = (ptr->unk0 + ptr->unk4 - 2) * 8; + param_1->unkC = (window->x + window->unk4 - 2) * 8; - param_1->unkE = (ptr->unk2 + 1) * 8 - 2; + param_1->unkE = (window->y + 1) * 8 - 2; } void sub_8013A54(MenuInputStruct *param_1) @@ -1078,16 +1078,16 @@ void sub_8013C68(unkStructFor8013AA0 *a0) } for (i = 0; i < a0->unk10; i++) - sub_800792C(a0->unk14, a0->unk1C - ((i + 1) * 12) - 1, a0->unk20 + 10, 11, 5); + AddUnderScoreHighlight(a0->unk14, a0->unk1C - ((i + 1) * 12) - 1, a0->unk20 + 10, 11, 5); } void sub_8013D10(unkStructFor8013AA0 *a0) { s32 x, y; u8 uVar4; - Window *ptr; + Window *window; - ptr = &gWindows[a0->unk14]; + window = &gWindows[a0->unk14]; uVar4 = a0->unk24; switch (sub_8012AE8()) { @@ -1105,10 +1105,10 @@ void sub_8013D10(unkStructFor8013AA0 *a0) a0->unk26 = 8; } - x = (a0->unk1C - ((a0->unk24 + 1) * 12) + (ptr->unk0 * 8)) - 3; + x = (a0->unk1C - ((a0->unk24 + 1) * 12) + (window->x * 8)) - 3; SpriteSetX(&a0->unk28, x); - y = a0->unk20 + (ptr->unk2 * 8) - 7; + y = a0->unk20 + (window->y * 8) - 7; SpriteSetY(&a0->unk28, y); } @@ -1152,7 +1152,7 @@ static bool8 sub_8013DD0(unkStructFor8013AA0 *a0) void sub_8013E54(void) { - Window *ptr = &gWindows[0]; + Window *window = &gWindows[0]; SpriteOAM SStack_18 = {0}; SpriteSetAffine1(&SStack_18, 0); @@ -1166,7 +1166,7 @@ void sub_8013E54(void) SpriteSetTileNum(&SStack_18, 0x3F0); SpriteSetPriority(&SStack_18, 0); SpriteSetPalNum(&SStack_18, 15); - SpriteSetY(&SStack_18, (ptr->unk2 * 8) + 0x80); + SpriteSetY(&SStack_18, (window->y * 8) + 0x80); SpriteSetX(&SStack_18, 112); AddSprite(&SStack_18,0x100,0,0x0); @@ -1174,7 +1174,7 @@ void sub_8013E54(void) void sub_8013F84(void) { - Window *ptr = &gWindows[0]; + Window *window = &gWindows[0]; SpriteOAM SStack_18 = {0}; SpriteSetAffine1(&SStack_18, 0); @@ -1188,7 +1188,7 @@ void sub_8013F84(void) SpriteSetTileNum(&SStack_18, 0x3F0); SpriteSetPriority(&SStack_18, 0); SpriteSetPalNum(&SStack_18, 15); - SpriteSetY(&SStack_18, (ptr->unk2 * 8) + 0x60); + SpriteSetY(&SStack_18, (window->y * 8) + 0x60); SpriteSetX(&SStack_18, 112); AddSprite(&SStack_18,0x100,0,0x0); diff --git a/src/moves.c b/src/moves.c index 4b2c5fbb4..edad645eb 100644 --- a/src/moves.c +++ b/src/moves.c @@ -1403,7 +1403,7 @@ static void unk_MovePrintData(Move *move, s32 y) s32 power; const u8 *text; - sub_80078A4(y, 4, 72, 200, COLOR_WHITE_2); + AddDoubleUnderScoreHighlight(y, 4, 72, 200, COLOR_WHITE_2); sub_8092D54(gFormatBuffer_Monsters[0], move); PrintFormattedStringOnWindow(4, 74, gUnknown_810CF00, y, 0); PrintFormattedStringOnWindow(4, 86, gPtrTypeText, y, 0); diff --git a/src/options_menu2.c b/src/options_menu2.c index b7f943857..cb0a936b2 100644 --- a/src/options_menu2.c +++ b/src/options_menu2.c @@ -110,15 +110,15 @@ static void CreateOptionsMenu(void) switch (sUnknown_203B260->optionsMenu->windowColor) { case WINDOW_COLOR_BLUE: length = sub_8008ED0(sBlue); - sub_80078A4(sUnknown_203B260->unk44, (sUnknown_203B260->optionsMenu->windowColor * 40) + 80, y + 10, length, COLOR_WHITE_2); + AddDoubleUnderScoreHighlight(sUnknown_203B260->unk44, (sUnknown_203B260->optionsMenu->windowColor * 40) + 80, y + 10, length, COLOR_WHITE_2); break; case WINDOW_COLOR_RED: length = sub_8008ED0(sRed); - sub_80078A4(sUnknown_203B260->unk44, (sUnknown_203B260->optionsMenu->windowColor * 40) + 80, y + 10, length, COLOR_WHITE_2); + AddDoubleUnderScoreHighlight(sUnknown_203B260->unk44, (sUnknown_203B260->optionsMenu->windowColor * 40) + 80, y + 10, length, COLOR_WHITE_2); break; case WINDOW_COLOR_GREEN: length = sub_8008ED0(sGreen); - sub_80078A4(sUnknown_203B260->unk44, (sUnknown_203B260->optionsMenu->windowColor * 40) + 80, y + 10, length, COLOR_WHITE_2); + AddDoubleUnderScoreHighlight(sUnknown_203B260->unk44, (sUnknown_203B260->optionsMenu->windowColor * 40) + 80, y + 10, length, COLOR_WHITE_2); break; } diff --git a/src/string_format.c b/src/string_format.c index f2daf62bd..03197d8c1 100644 --- a/src/string_format.c +++ b/src/string_format.c @@ -260,7 +260,7 @@ void CreateMenuDialogueBoxAndPortrait(const u8 *text, void *a1, u32 r9, const Me gUnknown_202E748.unk0 = 4; gUnknown_202E748.unk2 = 4; gUnknown_202E748.unk8 = 0x70; - gUnknown_202E748.unkA = (gWindows[0].unk2 * 8) + 34; + gUnknown_202E748.unkA = (gWindows[0].y * 8) + 34; gUnknown_202E748.unk10 = 7; gUnknown_202E748.unk1C = 0; gUnknown_202E748.unk20 = 0; @@ -541,7 +541,7 @@ void DrawDialogueBoxString(void) } gUnknown_202E748.unk8 = 0x70; - gUnknown_202E748.unkA = (gWindows[0].unk2 * 8) + 34; + gUnknown_202E748.unkA = (gWindows[0].y * 8) + 34; } keepLooping = FALSE; } diff --git a/src/text.c b/src/text.c index 8e06ef5e2..5f9cd9a6c 100644 --- a/src/text.c +++ b/src/text.c @@ -71,7 +71,7 @@ static void sub_8006C44(Window *a0, s32 a1, u16 *a2, u8 a3); static void sub_8006E94(Window *a0, s32 a1, u32 a2, const WindowHeader *a3, u16 *a4); static u32 xxx_draw_char(struct Window *a0, s32 x, s32 y, u32 a3, u32 color, u32 a5); static void nullsub_129(u32 a0, s32 x, s32 y, s32 a3, u32 color); -static void sub_8007958(Window *a0, u32 a1, s32 x, s32 y, s32 a4, u32 color); +static void AddUnderScoreHighlightInternal(Window *windows, u32 windowId, s32 x, s32 y, s32 width, u32 color); static void sub_8007AA4(struct Window *a0, u32 a1, s32 x, s32 y, s32 a4, u32 color); static void sub_8007BA8(Window *a0, u32 a1, s32 x, s32 y, s32 a4, s32 color); static void sub_8007D00(Window *a0, u32 a1, s32 x, s32 y, s32 a4, s32 color); @@ -333,112 +333,110 @@ u32 sub_8006544(u32 index) } // a1 is a VRAM pointer -static void AddWindow(Window *a0, u32 *a1, u32 *a2, u16 *a3, u32 a4, const WindowTemplate *winTemplate, bool8 a6, u32 a7, DungeonPos *a8, u8 a9) +static void AddWindow(Window *windows, u32 *a1, u32 *a2, u16 *a3, u32 windowId, const WindowTemplate *winTemplate, bool8 a6, u32 a7, DungeonPos *positionModifier, u8 a9) { - Window *t1; - s32 iVar3; - s32 iVar5; + Window *newWindow; + s32 x, y; s32 iVar6; s32 numI; u32 uVar1; s32 temp; - s32 i; - s32 j; + s32 i, j; - t1 = &a0[a4]; - iVar3 = winTemplate->pos.x + a8->x; - iVar5 = winTemplate->pos.y + a8->y; - t1->unk0 = iVar3; - t1->unk2 = iVar5; - t1->unk4 = winTemplate->width; - t1->unk8 = winTemplate->unk10; - t1->unk6 = winTemplate->height; - t1->unkC = winTemplate->type; - t1->unk10 = a7; + newWindow = &windows[windowId]; + x = winTemplate->pos.x + positionModifier->x; + y = winTemplate->pos.y + positionModifier->y; + newWindow->x = x; + newWindow->y = y; + newWindow->unk4 = winTemplate->width; + newWindow->unk8 = winTemplate->unk10; + newWindow->unk6 = winTemplate->height; + newWindow->unkC = winTemplate->type; + newWindow->unk10 = a7; - if (t1->unkC == 6) - t1->unk14 = a7; + if (newWindow->unkC == 6) + newWindow->unk14 = a7; else - t1->unk14 = a7 + winTemplate->unk12 * t1->unk4; + newWindow->unk14 = a7 + winTemplate->unk12 * newWindow->unk4; - t1->unk18 = &a2[t1->unk10 * 8]; - t1->unk1C = &a2[t1->unk14 * 8]; - t1->unk24 = winTemplate->unk12; - t1->unk28 = &a1[t1->unk14 * 8]; + newWindow->unk18 = &a2[newWindow->unk10 * 8]; + newWindow->unk1C = &a2[newWindow->unk14 * 8]; + newWindow->unk24 = winTemplate->unk12; + newWindow->unk28 = &a1[newWindow->unk14 * 8]; - if (t1->unkC == 6) - t1->unk2C = t1->unk4 * (t1->unk6 + winTemplate->unk12) * 32; + if (newWindow->unkC == 6) + newWindow->unk2C = newWindow->unk4 * (newWindow->unk6 + winTemplate->unk12) * 32; else - t1->unk2C = t1->unk4 * t1->unk6 * 32; + newWindow->unk2C = newWindow->unk4 * newWindow->unk6 * 32; - t1->unk30 = 0; - t1->unk34 = 0; - t1->unk38 = 0; - t1->unk20 = (t1->unk4 * 8) - 8; - t1->unk45 = t1->unkC == 0; + newWindow->unk30 = 0; + newWindow->unk34 = 0; + newWindow->unk38 = 0; + newWindow->unk20 = (newWindow->unk4 * 8) - 8; + newWindow->unk45 = newWindow->unkC == 0; - if (t1->unk8 == 0) + if (newWindow->unk8 == 0) return; if ((winTemplate->unk0 & 0xA0) != 0x80) { - temp = iVar5 - 1; + temp = y - 1; - if (t1->unkC == 6) { - uVar1 = a6 ? t1->unk14 : 0; + if (newWindow->unkC == 6) { + uVar1 = a6 ? newWindow->unk14 : 0; - sub_8006E94(t1, temp, uVar1, winTemplate->header, a3); + sub_8006E94(newWindow, temp, uVar1, winTemplate->header, a3); - temp = iVar5 + 2; - uVar1 = a6 ? t1->unk14 + t1->unk4 * (winTemplate->unk12 + 2) : 0; - numI = t1->unk6 - 2; + temp = y + 2; + uVar1 = a6 ? newWindow->unk14 + newWindow->unk4 * (winTemplate->unk12 + 2) : 0; + numI = newWindow->unk6 - 2; } else { - sub_800677C(t1, temp, a3, a9); + sub_800677C(newWindow, temp, a3, a9); - temp = iVar5; - uVar1 = a6 ? t1->unk14 : 0; - numI = t1->unk6; + temp = y; + uVar1 = a6 ? newWindow->unk14 : 0; + numI = newWindow->unk6; } for (i = 0; i < numI; i++) { - iVar6 = iVar3 - 1; - sub_80069CC(t1, iVar6, temp, i, a3); - iVar6 = iVar3; + iVar6 = x - 1; + sub_80069CC(newWindow, iVar6, temp, i, a3); + iVar6 = x; - for (j = 0; j < t1->unk4; j++) { - sub_8006AC4(t1, iVar6, temp, uVar1, a3); + for (j = 0; j < newWindow->unk4; j++) { + sub_8006AC4(newWindow, iVar6, temp, uVar1, a3); iVar6++; if (a6) uVar1++; } - sub_8006B70(t1, iVar6, temp, i, a3); + sub_8006B70(newWindow, iVar6, temp, i, a3); temp++; } - sub_8006C44(t1, temp, a3, a9); + sub_8006C44(newWindow, temp, a3, a9); } if ((winTemplate->unk0 & 0x80) == 0) - PrepareTextbox_8008C6C(a0, a4); + PrepareTextbox_8008C6C(windows, windowId); - t1->unk46 = 0; + newWindow->unk46 = 0; } -static void sub_800677C(Window *a0, s32 a1, u16 *a2, u8 a3) +static void sub_800677C(Window *window, s32 a1, u16 *a2, u8 a3) { s32 iVar5; s32 i; - iVar5 = a0->unk0 - 1; + iVar5 = window->x - 1; if (a1 > 28) return; if (a1 < 0) return; - switch (a0->unkC) { + switch (window->unkC) { case 0: case 1: case 2: @@ -451,7 +449,7 @@ static void sub_800677C(Window *a0, s32 a1, u16 *a2, u8 a3) else (a2 + a1 * 0x20)[iVar5 + 0x400] = 0xF2DB; iVar5++; - for (i = 0; i < a0->unk4; i++) { + for (i = 0; i < window->unk4; i++) { (a2 + a1 * 0x20)[iVar5] = 0xF2D9; (a2 + a1 * 0x20)[iVar5 + 0x400] = 0xF2DB; iVar5++; @@ -467,7 +465,7 @@ static void sub_800677C(Window *a0, s32 a1, u16 *a2, u8 a3) (a2 + a1 * 0x20)[iVar5] = 0xF2E8; (a2 + a1 * 0x20)[iVar5 + 0x400] = 0xF2DB; iVar5++; - for (i = 0; i < a0->unk4; i++) { + for (i = 0; i < window->unk4; i++) { (a2 + a1 * 0x20)[iVar5] = 0xF2E9; (a2 + a1 * 0x20)[iVar5 + 0x400] = 0xF2DB; iVar5++; @@ -479,7 +477,7 @@ static void sub_800677C(Window *a0, s32 a1, u16 *a2, u8 a3) case 5: (a2 + a1 * 0x20)[iVar5] = 0xF2DC; iVar5++; - for (i = 0; i < a0->unk4; i++) { + for (i = 0; i < window->unk4; i++) { (a2 + a1 * 0x20)[iVar5] = 0xF2DD; iVar5++; } @@ -489,7 +487,7 @@ static void sub_800677C(Window *a0, s32 a1, u16 *a2, u8 a3) case 7: (a2 + a1 * 0x20)[iVar5] = 0xF293; iVar5++; - for (i = 0; i < a0->unk4; i++) { + for (i = 0; i < window->unk4; i++) { (a2 + a1 * 0x20)[iVar5] = 0xF297; iVar5++; } @@ -499,14 +497,14 @@ static void sub_800677C(Window *a0, s32 a1, u16 *a2, u8 a3) } } -static void sub_80069CC(Window *a0, s32 a1, s32 a2, s32 a3, u16 *a4) +static void sub_80069CC(Window *window, s32 a1, s32 a2, s32 a3, u16 *a4) { if (a2 > 28) return; if (a2 < 0) return; - switch (a0->unkC) { + switch (window->unkC) { case 1: case 2: break; @@ -516,7 +514,7 @@ static void sub_80069CC(Window *a0, s32 a1, s32 a2, s32 a3, u16 *a4) (a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB; break; } - if (a3 == a0->unk6 - 1) { + if (a3 == window->unk6 - 1) { (a4 + a2 * 0x20)[a1] = 0xFA97; (a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB; break; @@ -540,14 +538,14 @@ static void sub_80069CC(Window *a0, s32 a1, s32 a2, s32 a3, u16 *a4) } } -static void sub_8006AC4(Window *a0, s32 a1, s32 a2, s32 a3, u16 *a4) +static void sub_8006AC4(Window *window, s32 a1, s32 a2, s32 a3, u16 *a4) { if (a2 > 28) return; if (a2 < 0) return; - switch (a0->unkC) { + switch (window->unkC) { case 2: (a4 + a2 * 0x20)[a1] = a3 | 0xF000; (a4 + a2 * 0x20)[a1 + 0x400] = 0xF278; @@ -567,14 +565,14 @@ static void sub_8006AC4(Window *a0, s32 a1, s32 a2, s32 a3, u16 *a4) } } -static void sub_8006B70(Window *a0, s32 a1, s32 a2, s32 a3, u16 *a4) +static void sub_8006B70(Window *window, s32 a1, s32 a2, s32 a3, u16 *a4) { if (a2 > 28) return; if (a2 < 0) return; - switch (a0->unkC) { + switch (window->unkC) { case 1: case 2: break; @@ -584,7 +582,7 @@ static void sub_8006B70(Window *a0, s32 a1, s32 a2, s32 a3, u16 *a4) (a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB; break; } - if (a3 == a0->unk6 - 1) { + if (a3 == window->unk6 - 1) { (a4 + a2 * 0x20)[a1] = 0xFE97; (a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB; break; @@ -608,19 +606,19 @@ static void sub_8006B70(Window *a0, s32 a1, s32 a2, s32 a3, u16 *a4) } } -static void sub_8006C44(Window *a0, s32 a1, u16 *a2, u8 a3) +static void sub_8006C44(Window *window, s32 a1, u16 *a2, u8 a3) { s32 iVar5; s32 i; - iVar5 = a0->unk0 - 1; + iVar5 = window->x - 1; if (a1 > 28) return; if (a1 < 0) return; - switch (a0->unkC) { + switch (window->unkC) { case 0: case 1: case 2: @@ -633,7 +631,7 @@ static void sub_8006C44(Window *a0, s32 a1, u16 *a2, u8 a3) else (a2 + a1 * 0x20)[iVar5 + 0x400] = 0xF2DB; iVar5++; - for (i = 0; i < a0->unk4; i++) { + for (i = 0; i < window->unk4; i++) { (a2 + a1 * 0x20)[iVar5] = 0xFAD9; (a2 + a1 * 0x20)[iVar5 + 0x400] = 0xF2DB; iVar5++; @@ -649,7 +647,7 @@ static void sub_8006C44(Window *a0, s32 a1, u16 *a2, u8 a3) (a2 + a1 * 0x20)[iVar5] = 0xFAE8; (a2 + a1 * 0x20)[iVar5 + 0x400] = 0xF2DB; iVar5++; - for (i = 0; i < a0->unk4; i++) { + for (i = 0; i < window->unk4; i++) { (a2 + a1 * 0x20)[iVar5] = 0xFAE9; (a2 + a1 * 0x20)[iVar5 + 0x400] = 0xF2DB; iVar5++; @@ -661,7 +659,7 @@ static void sub_8006C44(Window *a0, s32 a1, u16 *a2, u8 a3) case 5: (a2 + a1 * 0x20)[iVar5] = 0xFADC; iVar5++; - for (i = 0; i < a0->unk4; i++) { + for (i = 0; i < window->unk4; i++) { (a2 + a1 * 0x20)[iVar5] = 0xFADD; iVar5++; } @@ -671,7 +669,7 @@ static void sub_8006C44(Window *a0, s32 a1, u16 *a2, u8 a3) case 7: (a2 + a1 * 0x20)[iVar5] = 0xFA93; iVar5++; - for (i = 0; i < a0->unk4; i++) { + for (i = 0; i < window->unk4; i++) { (a2 + a1 * 0x20)[iVar5] = 0xFA97; iVar5++; } @@ -1462,15 +1460,15 @@ static void sub_8006E94(Window *a0, s32 a1, u32 a2, const WindowHeader *a3, u16 "_08007330: .4byte 0x0000f6d8"); } -void sub_8007334(s32 a0) +void sub_8007334(s32 windowId) { s32 i, j; - struct Window *textStructPtr = &gWindows[a0]; - s32 r5 = textStructPtr->unk14; - s32 r6 = textStructPtr->unk2; - for (i = 0; i < textStructPtr->unk6; i++) { - s32 id = textStructPtr->unk0; - for (j = 0; j < textStructPtr->unk4; j++) { + struct Window *window = &gWindows[windowId]; + s32 r5 = window->unk14; + s32 r6 = window->y; + for (i = 0; i < window->unk6; i++) { + s32 id = window->x; + for (j = 0; j < window->unk4; j++) { gUnknown_202B038[0][r6][id] &= ~0x3ff; gUnknown_202B038[0][r6][id] |= r5; id++; @@ -1725,10 +1723,10 @@ static u32 xxx_draw_char(struct Window *a0, s32 x, s32 y, u32 a3, u32 color, u32 return sp0->unk6 + sCharacterSpacing; } -void sub_80078A4(u32 a0, s32 x, s32 y, s32 a3, u32 color) +void AddDoubleUnderScoreHighlight(u32 windowId, s32 x, s32 y, s32 width, u32 color) { - sub_800792C(a0, x, y, a3, color); - sub_800792C(a0, x, y + 1, a3, sTextShadowMask & 0xF); + AddUnderScoreHighlight(windowId, x, y, width, color); + AddUnderScoreHighlight(windowId, x, y + 1, width, sTextShadowMask & 0xF); } UNUSED static void sub_80078E8(u32 a0, s32 x, s32 y, s32 a3, u32 color) @@ -1737,67 +1735,66 @@ UNUSED static void sub_80078E8(u32 a0, s32 x, s32 y, s32 a3, u32 color) nullsub_129(a0, x, y + 1, a3, sTextShadowMask & 0xF); } -void sub_800792C(u32 a0, s32 x, s32 y, s32 a3, u32 color) +void AddUnderScoreHighlight(u32 windowId, s32 x, s32 y, s32 width, u32 color) { - sub_8007958(gWindows, a0, x, y, a3, color); + AddUnderScoreHighlightInternal(gWindows, windowId, x, y, width, color); } -static void nullsub_129(u32 a0, s32 x, s32 y, s32 a3, u32 color) +static void nullsub_129(u32 windowId, s32 x, s32 y, s32 width, u32 color) { } -static void sub_8007958(Window *a0, u32 a1, s32 x, s32 y, s32 a4, u32 color) +static void AddUnderScoreHighlightInternal(Window *windows, u32 windowId, s32 x, s32 y, s32 width, u32 color) { u32 uVar4; u32 *dest; s32 r4; const struct unkShiftData *shiftData; - Window *r5; + Window *window; s32 r6; u32 r9; - s32 lol; - r5 = &a0[a1]; + window = &windows[windowId]; r9 = gUnknown_80B853C[color & 0xF]; r4 = y / 8; - dest = r5->unk18 + (((r5->unk4 * r4) + (x / 8)) * 8); + dest = window->unk18 + (((window->unk4 * r4) + (x / 8)) * 8); dest += (r4 * -8) + y; r6 = x / 8; - if (y / 8 >= r5->unk8) { + if (y / 8 >= window->unk8) { return; } else { const u32 unkBits[] = {0, 0xF, 0xFF, 0xFFF, 0xFFFF, 0xFFFFF, 0xFFFFFF, 0xFFFFFFF, 0xFFFFFFFF}; - for (; a4 > 0; a4 -= 8) { - lol = a4; - if (lol > 7) - lol = 8; + for (; width > 0; width -= 8) { + s32 currWidth = width; + if (currWidth > 7) + currWidth = 8; shiftData = &gCharMasksOffsets[x + (x / 8 * -8)]; - uVar4 = unkBits[lol]; + uVar4 = unkBits[currWidth]; uVar4 = (uVar4 & 0x11111111) + (uVar4 & r9); if (uVar4 != 0) { - if (r6 < r5->unk4) { + if (r6 < window->unk4) { dest[0] |= (shiftData->bytesA & uVar4) << shiftData->shift_left; - if (r5->unk3C > dest) - r5->unk3C = dest; - if (r5->unk40 < dest) - r5->unk40 = dest; + if (window->unk3C > dest) + window->unk3C = dest; + if (window->unk40 < dest) + window->unk40 = dest; } - if (r6 < r5->unk4 - 1) { + if (r6 < window->unk4 - 1) { dest += 8; dest[0] |= (uVar4 & shiftData->bytesB) >> shiftData->shift_right; - if (r5->unk40 < dest) - r5->unk40 = dest; + if (window->unk40 < dest) + window->unk40 = dest; dest -= 8; } } @@ -2288,24 +2285,24 @@ UNUSED static void nullsub_160(void) static void sub_8007E64(Window *a0, u16 a1[32][32], u32 a2, s32 a3, s32 a4, s32 a5, s32 a6, u32 *a7, u32 a8) { s32 i, j; - Window *strPtr = &a0[a2]; + Window *window = &a0[a2]; a3 /= 8; a4 /= 8; a5 /= 8; a6 /= 8; a8 *= 4096; - if (a4 < strPtr->unk8) { - s32 id = (strPtr->unk4 * a4) + a3; - u32 *unk18Ptr = &strPtr->unk18[id * 8]; + if (a4 < window->unk8) { + s32 id = (window->unk4 * a4) + a3; + u32 *unk18Ptr = &window->unk18[id * 8]; for (i = 0; i < a6; i++) { s32 xMaybe = a3; u32 *loopUnk18Ptr = unk18Ptr; for (j = 0; j < a5; j++) { - if (xMaybe < strPtr->unk4) { - if (strPtr->unk3C > loopUnk18Ptr) { - strPtr->unk3C = loopUnk18Ptr; + if (xMaybe < window->unk4) { + if (window->unk3C > loopUnk18Ptr) { + window->unk3C = loopUnk18Ptr; } *(loopUnk18Ptr++) = *(a7++); *(loopUnk18Ptr++) = *(a7++); @@ -2315,12 +2312,12 @@ static void sub_8007E64(Window *a0, u16 a1[32][32], u32 a2, s32 a3, s32 a4, s32 *(loopUnk18Ptr++) = *(a7++); *(loopUnk18Ptr++) = *(a7++); *(loopUnk18Ptr++) = *a7; - if (strPtr->unk40 < loopUnk18Ptr) { - strPtr->unk40 = loopUnk18Ptr; + if (window->unk40 < loopUnk18Ptr) { + window->unk40 = loopUnk18Ptr; } a7++; - a1[strPtr->unk2 + a4][strPtr->unk0 + xMaybe] &= 0xFFF; - a1[strPtr->unk2 + a4][strPtr->unk0 + xMaybe] |= a8; + a1[window->y + a4][window->x + xMaybe] &= 0xFFF; + a1[window->y + a4][window->x + xMaybe] |= a8; } else { loopUnk18Ptr += 8; @@ -2329,9 +2326,9 @@ static void sub_8007E64(Window *a0, u16 a1[32][32], u32 a2, s32 a3, s32 a4, s32 xMaybe++; } a4++; - unk18Ptr += strPtr->unk20; + unk18Ptr += window->unk20; unk18Ptr += 8; - if (a4 >= strPtr->unk8) + if (a4 >= window->unk8) break; } } @@ -2366,24 +2363,24 @@ UNUSED static void nullsub_161(void) static void sub_8008030(Window *a0, u16 a1[32][32], u32 a2, s32 a3, s32 a4, s32 a5, s32 a6, u32 *a7, u32 a8) { s32 i, j; - Window *strPtr = &a0[a2]; + Window *window = &a0[a2]; a3 /= 8; a4 /= 8; a5 /= 8; a6 /= 8; a8 *= 4096; - if (a4 < strPtr->unk8) { - u32 *unk18Ptr = &strPtr->unk18[((strPtr->unk4 * a4) + (a3 + a5)) * 8]; + if (a4 < window->unk8) { + u32 *unk18Ptr = &window->unk18[((window->unk4 * a4) + (a3 + a5)) * 8]; for (i = 0; i < a6; i++) { s32 xMaybe = a3 + a5; u32 *loopUnk18Ptr = unk18Ptr; for (j = 0; j < a5; j++) { xMaybe--; loopUnk18Ptr -= 8; - if (xMaybe < strPtr->unk4) { - if (strPtr->unk3C > loopUnk18Ptr) { - strPtr->unk3C = loopUnk18Ptr; + if (xMaybe < window->unk4) { + if (window->unk3C > loopUnk18Ptr) { + window->unk3C = loopUnk18Ptr; } loopUnk18Ptr[0] = FlipPixelsHorizontally(*(a7++)); loopUnk18Ptr[1] = FlipPixelsHorizontally(*(a7++)); @@ -2393,20 +2390,20 @@ static void sub_8008030(Window *a0, u16 a1[32][32], u32 a2, s32 a3, s32 a4, s32 loopUnk18Ptr[5] = FlipPixelsHorizontally(*(a7++)); loopUnk18Ptr[6] = FlipPixelsHorizontally(*(a7++)); loopUnk18Ptr[7] = FlipPixelsHorizontally(*(a7++)); - if (strPtr->unk40 < loopUnk18Ptr + 8) { - strPtr->unk40 = loopUnk18Ptr + 8; + if (window->unk40 < loopUnk18Ptr + 8) { + window->unk40 = loopUnk18Ptr + 8; } - a1[strPtr->unk2 + a4][strPtr->unk0 + xMaybe] &= 0xFFF; - a1[strPtr->unk2 + a4][strPtr->unk0 + xMaybe] |= a8; + a1[window->y + a4][window->x + xMaybe] &= 0xFFF; + a1[window->y + a4][window->x + xMaybe] |= a8; } else { a7 += 8; } } a4++; - unk18Ptr += strPtr->unk20; + unk18Ptr += window->unk20; unk18Ptr += 8; - if (a4 >= strPtr->unk8) + if (a4 >= window->unk8) break; } } @@ -2416,22 +2413,22 @@ static void sub_8008030(Window *a0, u16 a1[32][32], u32 a2, s32 a3, s32 a4, s32 UNUSED static void sub_80081A4(s32 a0, s32 a3, s32 a4, s32 a7Id) { s32 i, j, a5, a6; - Window *strPtr = &gWindows[a0]; + Window *window = &gWindows[a0]; const u32 *a7 = gUnknown_80B86B4[a7Id]; a3 /= 8; a4 /= 8; a5 = 2; a6 = 2; - if (a4 < strPtr->unk8) { - s32 id = (strPtr->unk4 * a4) + a3; - u32 *unk18Ptr = &strPtr->unk28[id * 8]; + if (a4 < window->unk8) { + s32 id = (window->unk4 * a4) + a3; + u32 *unk18Ptr = &window->unk28[id * 8]; for (i = 0; i < a6; i++) { s32 xMaybe = a3; u32 *loopUnk18Ptr = unk18Ptr; for (j = 0; j < a5; j++) { - if (xMaybe < strPtr->unk4) { + if (xMaybe < window->unk4) { *(loopUnk18Ptr++) = *(a7++); *(loopUnk18Ptr++) = *(a7++); *(loopUnk18Ptr++) = *(a7++); @@ -2449,9 +2446,9 @@ UNUSED static void sub_80081A4(s32 a0, s32 a3, s32 a4, s32 a7Id) xMaybe++; } a4++; - unk18Ptr += strPtr->unk20; + unk18Ptr += window->unk20; unk18Ptr += 8; - if (a4 >= strPtr->unk8) + if (a4 >= window->unk8) break; } } @@ -2469,20 +2466,20 @@ UNUSED static void nullsub_162(void) static void DisplayMonPortrait(Window *a0, u16 a1[32][32], s32 a2, const u8 *compressedData, u32 a4) { s32 i, j; - Window *strPtr = &a0[a2]; + Window *window = &a0[a2]; a4 *= 4096; - DecompressAT((u8 *)strPtr->unk18, (strPtr->unk4 * 32) * strPtr->unk8, compressedData); - for (i = 0; i < strPtr->unk8; i++) { - for (j = 0; j < strPtr->unk4; j++) { - a1[strPtr->unk2 + i][strPtr->unk0 + j] &= 0xFFF; - a1[strPtr->unk2 + i][strPtr->unk0 + j] |= a4; + DecompressAT((u8 *)window->unk18, (window->unk4 * 32) * window->unk8, compressedData); + for (i = 0; i < window->unk8; i++) { + for (j = 0; j < window->unk4; j++) { + a1[window->y + i][window->x + j] &= 0xFFF; + a1[window->y + i][window->x + j] |= a4; } } - strPtr->unk30 = strPtr->unk28; - strPtr->unk34 = strPtr->unk1C; - strPtr->unk38 = strPtr->unk2C; - strPtr->unk44 = 1; + window->unk30 = window->unk28; + window->unk34 = window->unk1C; + window->unk38 = window->unk2C; + window->unk44 = 1; } static void sub_8008334(u32 *r7, u32 *r12) @@ -2561,25 +2558,25 @@ UNUSED static void nullsub_164(void) static void sub_80084A4(Window *a0, u16 a1[32][32], u32 a2, s32 a3, s32 a4, s32 a5, s32 a6, u32 a8) { s32 i, j; - Window *strPtr = &a0[a2]; + Window *window = &a0[a2]; a3 /= 8; a4 /= 8; a5 /= 8; a6 /= 8; a8 *= 4096; - if (a4 < strPtr->unk8) { + if (a4 < window->unk8) { for (i = 0; i < a6; i++) { s32 xMaybe = a3; for (j = 0; j < a5; j++) { - if (xMaybe < strPtr->unk4) { - a1[strPtr->unk2 + a4][strPtr->unk0 + xMaybe] &= 0xFFF; - a1[strPtr->unk2 + a4][strPtr->unk0 + xMaybe] |= a8; + if (xMaybe < window->unk4) { + a1[window->y + a4][window->x + xMaybe] &= 0xFFF; + a1[window->y + a4][window->x + xMaybe] |= a8; } xMaybe++; } a4++; - if (a4 >= strPtr->unk8) + if (a4 >= window->unk8) break; } } @@ -3059,8 +3056,8 @@ static void PrepareTextbox_8008C6C(Window *strArr, u32 strId) if (strPtr->unkC == 6) { strPtr->unk46 = 1; - sub_8007958(strArr, strId, 0, 10, strPtr->unk4 * 8, 0xE); - sub_8007958(strArr, strId, 0, 11, strPtr->unk4 * 8, 0xD); + AddUnderScoreHighlightInternal(strArr, strId, 0, 10, strPtr->unk4 * 8, 0xE); + AddUnderScoreHighlightInternal(strArr, strId, 0, 11, strPtr->unk4 * 8, 0xD); strPtr->unk46 = 0; } @@ -3300,7 +3297,7 @@ UNUSED static s32 sub_80091A8(s32 a0) return a0 + 1; } -static const u8 *HandleTextFormat(Window *strArr, const u8 *str, struct UnkDrawStringStruct *sp) +static const u8 *HandleTextFormat(Window *windows, const u8 *str, struct UnkDrawStringStruct *sp) { while (1) { if (str[0] == '#') { @@ -3358,7 +3355,7 @@ static const u8 *HandleTextFormat(Window *strArr, const u8 *str, struct UnkDrawS } else if (str[1] == '+') { str += 2; - sp->unk0 = (strArr[0].unk4 * 8) - sub_8008ED0(str); + sp->unk0 = (windows[0].unk4 * 8) - sub_8008ED0(str); sp->unk0 /= 2; } else if (str[1] == 'C') { @@ -3392,8 +3389,8 @@ static const u8 *HandleTextFormat(Window *strArr, const u8 *str, struct UnkDrawS } else if (str[1] == 'W') { str += 2; - sp->unk8 = ((strArr[0].unk0 * 8) + sp->unk0) - 2; - sp->unkA = ((strArr[0].unk2 * 8) + sp->unk2) + 3; + sp->unk8 = ((windows[0].x * 8) + sp->unk0) - 2; + sp->unkA = ((windows[0].y * 8) + sp->unk2) + 3; sp->unk20 = 1; break; } @@ -3461,16 +3458,16 @@ void sub_8009408(s32 from, s32 to) gUnknown_20274A5 = TRUE; } -UNUSED static void sub_8009488(s32 strArrId) +UNUSED static void sub_8009488(s32 windowId) { s32 i, j; s32 id0, id1; - Window *strPtr = &gWindows[strArrId]; + Window *window = &gWindows[windowId]; - id0 = strPtr->unk2; - for (i = 0; i < strPtr->unk6; i++) { - id1 = strPtr->unk0; - for (j = 0; j < strPtr->unk4; j++) { + id0 = window->y; + for (i = 0; i < window->unk6; i++) { + id1 = window->x; + for (j = 0; j < window->unk4; j++) { gUnknown_202B038[0][id0][id1] &= 0xFC00; gUnknown_202B038[1][id0][id1] = 0xF27A; id1++; @@ -3483,15 +3480,15 @@ UNUSED static void nullsub_172(void) { } -void sub_8009524(s32 strArrId) +void sub_8009524(s32 windowId) { s32 i, j; - Window *strPtr = &gWindows[strArrId]; - s32 id0 = strPtr->unk2 - 1; + Window *window = &gWindows[windowId]; + s32 id0 = window->y - 1; - for (i = 0; i < strPtr->unk6 + 2; i++) { - s32 id1 = strPtr->unk0 - 1; - for (j = 0; j < strPtr->unk4 + 2; j++) { + for (i = 0; i < window->unk6 + 2; i++) { + s32 id1 = window->x - 1; + for (j = 0; j < window->unk4 + 2; j++) { gUnknown_202B038[0][id0][id1] &= 0xFC00; gUnknown_202B038[1][id0][id1] = 0xF27A; id1++; diff --git a/src/wigglytuff_shop2.c b/src/wigglytuff_shop2.c index 446519a94..db1635cfa 100644 --- a/src/wigglytuff_shop2.c +++ b/src/wigglytuff_shop2.c @@ -96,14 +96,14 @@ static void PopulateWigglytuffShopFriendAreaInfoScreen(void) else PrintStringOnWindow(32, 60, sInhabitants, sWigglytuffShop2Work->unk74, 0); - sub_800792C(sWigglytuffShop2Work->unk74, 4, 64, 20, 4); + AddUnderScoreHighlight(sWigglytuffShop2Work->unk74, 4, 64, 20, 4); if (sWigglytuffShop2Work->unkD != 0) - sub_800792C(sWigglytuffShop2Work->unk74, 184, 64, 20, 4); + AddUnderScoreHighlight(sWigglytuffShop2Work->unk74, 184, 64, 20, 4); else - sub_800792C(sWigglytuffShop2Work->unk74, 94, 64, 110, 4); + AddUnderScoreHighlight(sWigglytuffShop2Work->unk74, 94, 64, 110, 4); - sub_800792C(sWigglytuffShop2Work->unk74, 4, 130, 200, 4); + AddUnderScoreHighlight(sWigglytuffShop2Work->unk74, 4, 130, 200, 4); sub_8007A78(sWigglytuffShop2Work->unk74, 3, 64, 67, 4); sub_8007A78(sWigglytuffShop2Work->unk74, 204, 64, 67, 4);