mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-22 00:34:40 -05:00
menu dung documentation
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
// size: 0x48
|
||||
typedef struct Window
|
||||
{
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s16 x;
|
||||
s16 y;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
s16 unk8;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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++) {
|
||||
|
||||
@@ -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}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
343
src/text.c
343
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++;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user