diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-10-07 17:06:11 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-10-07 17:06:11 -0400 |
commit | 0f67a952a396c80984236b45974407bcc8f6191d (patch) | |
tree | 36e0f5631281b6a0bba359dcecde93940639e1f6 | |
parent | 2fe6b6db8cd681de8cf1671936452aa8bb1103f5 (diff) |
main_menu through sub_800CE70
-rw-r--r-- | asm/main_menu.s | 886 | ||||
-rw-r--r-- | data/data.s | 4 | ||||
-rw-r--r-- | data/strings.s | 24 | ||||
-rw-r--r-- | include/link.h | 1 | ||||
-rw-r--r-- | include/mystery_gift_menu.h | 1 | ||||
-rw-r--r-- | include/quest_log.h | 1 | ||||
-rw-r--r-- | include/strings.h | 85 | ||||
-rw-r--r-- | src/main_menu.c | 328 | ||||
-rw-r--r-- | src/mystery_gift_menu.c | 66 | ||||
-rw-r--r-- | src/quest_log.c | 14 |
10 files changed, 444 insertions, 966 deletions
diff --git a/asm/main_menu.s b/asm/main_menu.s index 3b33c4f69..664da29ee 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -5,884 +5,6 @@ .text - thumb_func_start sub_800C7A0 -sub_800C7A0: @ 800C7A0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x1 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x21 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0xFF - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0x7 - bl SetGpuReg - ldr r0, _0800C7F4 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0800C7FC - ldr r1, _0800C7F8 @ =0x00007e04 - b _0800C7FE - .align 2, 0 -_0800C7F4: .4byte gSaveBlock2Ptr -_0800C7F8: .4byte 0x00007e04 -_0800C7FC: - ldr r1, _0800C85C @ =0x0000547f -_0800C7FE: - add r0, sp, 0xC - strh r1, [r0] - add r0, sp, 0xC - movs r1, 0xF1 - movs r2, 0x2 - bl LoadPalette - ldr r2, _0800C860 @ =gTasks - lsls r1, r7, 2 - adds r0, r1, r7 - lsls r0, 3 - adds r6, r0, r2 - movs r2, 0x8 - ldrsh r0, [r6, r2] - mov r8, r1 - cmp r0, 0x1 - beq _0800C870 - cmp r0, 0x1 - ble _0800C828 - cmp r0, 0x2 - beq _0800C8F0 -_0800C828: - movs r0, 0 - movs r1, 0xAA - bl FillWindowPixelBuffer - ldr r0, _0800C864 @ =gUnknown_8234688 - str r0, [sp] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0x4] - ldr r0, _0800C868 @ =gUnknown_8415A6E - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x2 - bl AddTextPrinterParameterized3 - ldr r0, _0800C86C @ =gUnknown_8234618 - bl sub_800D0B4 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - b _0800C8D8 - .align 2, 0 -_0800C85C: .4byte 0x0000547f -_0800C860: .4byte gTasks -_0800C864: .4byte gUnknown_8234688 -_0800C868: .4byte gUnknown_8415A6E -_0800C86C: .4byte gUnknown_8234618 -_0800C870: - movs r0, 0x1 - movs r1, 0xAA - bl FillWindowPixelBuffer - movs r0, 0x2 - movs r1, 0xAA - bl FillWindowPixelBuffer - ldr r5, _0800C8E0 @ =gUnknown_8234688 - str r5, [sp] - movs r4, 0x1 - negs r4, r4 - str r4, [sp, 0x4] - ldr r0, _0800C8E4 @ =gUnknown_8415A77 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, 0x4] - ldr r0, _0800C8E8 @ =gUnknown_8415A6E - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x2 - bl AddTextPrinterParameterized3 - bl sub_800CE58 - ldr r4, _0800C8EC @ =gUnknown_8234620 - adds r0, r4, 0 - bl sub_800D0B4 - adds r4, 0x8 - adds r0, r4, 0 - bl sub_800D0B4 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x2 -_0800C8D8: - movs r1, 0x3 - bl CopyWindowToVram - b _0800C994 - .align 2, 0 -_0800C8E0: .4byte gUnknown_8234688 -_0800C8E4: .4byte gUnknown_8415A77 -_0800C8E8: .4byte gUnknown_8415A6E -_0800C8EC: .4byte gUnknown_8234620 -_0800C8F0: - movs r0, 0x1 - movs r1, 0xAA - bl FillWindowPixelBuffer - movs r0, 0x2 - movs r1, 0xAA - bl FillWindowPixelBuffer - movs r0, 0x3 - movs r1, 0xAA - bl FillWindowPixelBuffer - ldr r5, _0800C9B0 @ =gUnknown_8234688 - str r5, [sp] - movs r4, 0x1 - negs r4, r4 - str r4, [sp, 0x4] - ldr r0, _0800C9B4 @ =gUnknown_8415A77 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x2 - bl AddTextPrinterParameterized3 - str r5, [sp] - str r4, [sp, 0x4] - ldr r0, _0800C9B8 @ =gUnknown_8415A6E - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x2 - bl AddTextPrinterParameterized3 - movs r0, 0x1 - strh r0, [r6, 0x1C] - str r5, [sp] - str r4, [sp, 0x4] - ldr r0, _0800C9BC @ =gUnknown_8415A97 - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x2 - bl AddTextPrinterParameterized3 - bl sub_800CE58 - ldr r4, _0800C9C0 @ =gUnknown_8234620 - adds r0, r4, 0 - bl sub_800D0B4 - adds r0, r4, 0 - adds r0, 0x8 - bl sub_800D0B4 - adds r4, 0x10 - adds r0, r4, 0 - bl sub_800D0B4 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x3 - movs r1, 0x3 - bl CopyWindowToVram -_0800C994: - ldr r0, _0800C9C4 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _0800C9C8 @ =sub_800C9CC - str r0, [r1] - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800C9B0: .4byte gUnknown_8234688 -_0800C9B4: .4byte gUnknown_8415A77 -_0800C9B8: .4byte gUnknown_8415A6E -_0800C9BC: .4byte gUnknown_8415A97 -_0800C9C0: .4byte gUnknown_8234620 -_0800C9C4: .4byte gTasks -_0800C9C8: .4byte sub_800C9CC - thumb_func_end sub_800C7A0 - - thumb_func_start sub_800C9CC -sub_800C9CC: @ 800C9CC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0x1 - negs r5, r5 - adds r0, r5, 0 - bl CheckForSpaceForDma3Request - lsls r0, 16 - asrs r0, 16 - cmp r0, r5 - beq _0800CA10 - ldr r1, _0800CA18 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0800CA1C @ =sub_800CA28 - str r1, [r0] - ldr r0, _0800CA20 @ =0x0000ffff - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0 - bl ShowBg - ldr r0, _0800CA24 @ =sub_800C2EC - bl SetVBlankCallback -_0800CA10: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800CA18: .4byte gTasks -_0800CA1C: .4byte sub_800CA28 -_0800CA20: .4byte 0x0000ffff -_0800CA24: .4byte sub_800C2EC - thumb_func_end sub_800C9CC - - thumb_func_start sub_800CA28 -sub_800CA28: @ 800CA28 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800CA4C @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrb r0, [r4, 0x8] - ldrb r1, [r4, 0xA] - bl sub_800CC94 - ldr r0, _0800CA50 @ =sub_800CA54 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CA4C: .4byte gTasks -_0800CA50: .4byte sub_800CA54 - thumb_func_end sub_800CA28 - - thumb_func_start sub_800CA54 -sub_800CA54: @ 800CA54 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0800CA88 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0800CA80 - adds r0, r4, 0 - bl sub_800CCF8 - lsls r0, 24 - cmp r0, 0 - beq _0800CA80 - ldr r0, _0800CA8C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0800CA90 @ =sub_800CA28 - str r0, [r1] -_0800CA80: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CA88: .4byte gPaletteFade -_0800CA8C: .4byte gTasks -_0800CA90: .4byte sub_800CA28 - thumb_func_end sub_800CA54 - - thumb_func_start sub_800CA94 -sub_800CA94: @ 800CA94 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0800CAC4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0800CB84 - ldr r1, _0800CAC8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0800CACC - cmp r0, 0x1 - ble _0800CAEE - cmp r0, 0x2 - beq _0800CADA - b _0800CAEE - .align 2, 0 -_0800CAC4: .4byte gPaletteFade -_0800CAC8: .4byte gTasks -_0800CACC: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0800CAEA - cmp r0, 0x1 - bne _0800CAEA - b _0800CAEE -_0800CADA: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0800CAEE - cmp r0, 0x1 - ble _0800CAEA - cmp r0, 0x2 - beq _0800CAF2 -_0800CAEA: - movs r0, 0x1 - b _0800CB22 -_0800CAEE: - movs r0, 0 - b _0800CB22 -_0800CAF2: - bl IsWirelessAdapterConnected - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0800CB20 - movs r0, 0 - bl sub_800D094 - ldr r0, _0800CB1C @ =sub_800CB90 - str r0, [r4] - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _0800CB84 - .align 2, 0 -_0800CB1C: .4byte sub_800CB90 -_0800CB20: - movs r0, 0x2 -_0800CB22: - cmp r0, 0x1 - beq _0800CB48 - cmp r0, 0x1 - ble _0800CB2E - cmp r0, 0x2 - beq _0800CB70 -_0800CB2E: - ldr r1, _0800CB44 @ =gUnknown_2031DE0 - movs r0, 0 - strb r0, [r1] - bl FreeAllWindowBuffers - adds r0, r6, 0 - bl DestroyTask - bl StartNewGameScene - b _0800CB84 - .align 2, 0 -_0800CB44: .4byte gUnknown_2031DE0 -_0800CB48: - ldr r0, _0800CB64 @ =gPlttBufferUnfaded - movs r2, 0 - movs r1, 0 - strh r1, [r0] - ldr r0, _0800CB68 @ =gPlttBufferFaded - strh r1, [r0] - ldr r0, _0800CB6C @ =gUnknown_2031DE0 - strb r2, [r0] - bl FreeAllWindowBuffers - adds r0, r6, 0 - bl sub_8110F14 - b _0800CB84 - .align 2, 0 -_0800CB64: .4byte gPlttBufferUnfaded -_0800CB68: .4byte gPlttBufferFaded -_0800CB6C: .4byte gUnknown_2031DE0 -_0800CB70: - ldr r0, _0800CB8C @ =c2_mystery_gift - bl SetMainCallback2 - bl sub_812B478 - bl FreeAllWindowBuffers - adds r0, r6, 0 - bl DestroyTask -_0800CB84: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800CB8C: .4byte c2_mystery_gift - thumb_func_end sub_800CA94 - - thumb_func_start sub_800CB90 -sub_800CB90: @ 800CB90 - push {r4,r5,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0800CBB4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x1A - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _0800CC0C - cmp r1, 0x1 - bgt _0800CBB8 - cmp r1, 0 - beq _0800CBC2 - b _0800CC58 - .align 2, 0 -_0800CBB4: .4byte gTasks -_0800CBB8: - cmp r1, 0x2 - beq _0800CC1C - cmp r1, 0x3 - beq _0800CC34 - b _0800CC58 -_0800CBC2: - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _0800CBEC - ldr r0, _0800CBE8 @ =gUnknown_8415AA4 - bl sub_800CDF8 - b _0800CBF2 - .align 2, 0 -_0800CBE8: .4byte gUnknown_8415AA4 -_0800CBEC: - ldr r0, _0800CC04 @ =gUnknown_8415ACB - bl sub_800CDF8 -_0800CBF2: - ldr r0, _0800CC08 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1A] - adds r0, 0x1 - strh r0, [r1, 0x1A] - b _0800CC58 - .align 2, 0 -_0800CC04: .4byte gUnknown_8415ACB -_0800CC08: .4byte gTasks -_0800CC0C: - ldr r0, _0800CC18 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - b _0800CC28 - .align 2, 0 -_0800CC18: .4byte gPaletteFade -_0800CC1C: - bl RunTextPrinters - movs r0, 0x4 - bl IsTextPrinterActive - lsls r0, 16 -_0800CC28: - cmp r0, 0 - bne _0800CC58 - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - b _0800CC58 -_0800CC34: - ldr r0, _0800CC60 @ =gMain - ldrh r0, [r0, 0x2E] - ands r1, r0 - cmp r1, 0 - beq _0800CC58 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0800CC64 @ =sub_800CC68 - str r0, [r4] -_0800CC58: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800CC60: .4byte gMain -_0800CC64: .4byte sub_800CC68 - thumb_func_end sub_800CB90 - - thumb_func_start sub_800CC68 -sub_800CC68: @ 800CC68 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0800CC8C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0800CC86 - ldr r0, _0800CC90 @ =CB2_InitTitleScreen - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0800CC86: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CC8C: .4byte gPaletteFade -_0800CC90: .4byte CB2_InitTitleScreen - thumb_func_end sub_800CC68 - - thumb_func_start sub_800CC94 -sub_800CC94: @ 800CC94 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r1, _0800CCB8 @ =0x000012de - movs r0, 0x40 - bl SetGpuReg - cmp r4, 0 - beq _0800CCB2 - cmp r4, 0 - blt _0800CCB2 - cmp r4, 0x2 - ble _0800CCBC -_0800CCB2: - movs r2, 0 - movs r0, 0x20 - b _0800CCDC - .align 2, 0 -_0800CCB8: .4byte 0x000012de -_0800CCBC: - cmp r5, 0x1 - beq _0800CCCE - cmp r5, 0x1 - ble _0800CCC8 - cmp r5, 0x2 - beq _0800CCD6 -_0800CCC8: - movs r2, 0 - movs r0, 0x60 - b _0800CCDC -_0800CCCE: - movs r2, 0xC0 - lsls r2, 7 - movs r0, 0x80 - b _0800CCDC -_0800CCD6: - movs r2, 0x80 - lsls r2, 8 - movs r0, 0xA0 -_0800CCDC: - movs r3, 0x80 - lsls r3, 2 - adds r1, r3, 0 - adds r1, r2, r1 - subs r0, 0x2 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_800CC94 - - thumb_func_start sub_800CCF8 -sub_800CCF8: @ 800CCF8 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0800CD38 @ =gMain - ldrh r1, [r0, 0x2E] - movs r5, 0x1 - ands r5, r1 - adds r3, r0, 0 - cmp r5, 0 - beq _0800CD44 - movs r0, 0x5 - bl PlaySE - bl IsWirelessAdapterConnected - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0800CD3C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0800CD40 @ =sub_800CA94 - str r1, [r0] - b _0800CDEC - .align 2, 0 -_0800CD38: .4byte gMain -_0800CD3C: .4byte gTasks -_0800CD40: .4byte sub_800CA94 -_0800CD44: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0800CD8C - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0xA0 - bl SetGpuReg - ldr r1, _0800CD84 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0800CD88 @ =sub_800CC68 - str r1, [r0] - b _0800CDEC - .align 2, 0 -_0800CD84: .4byte gTasks -_0800CD88: .4byte sub_800CC68 -_0800CD8C: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800CDB4 - ldr r0, _0800CDB0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xA] - movs r5, 0xA - ldrsh r0, [r1, r5] - cmp r0, 0 - ble _0800CDB4 - subs r0, r2, 0x1 - strh r0, [r1, 0xA] - movs r0, 0x1 - b _0800CDEE - .align 2, 0 -_0800CDB0: .4byte gTasks -_0800CDB4: - ldrh r1, [r3, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0800CDEC - ldr r1, _0800CDE4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - movs r0, 0xA - ldrsh r2, [r3, r0] - ldr r1, _0800CDE8 @ =gUnknown_8234694 - movs r4, 0x8 - ldrsh r0, [r3, r4] - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - bge _0800CDEC - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - movs r0, 0x1 - b _0800CDEE - .align 2, 0 -_0800CDE4: .4byte gTasks -_0800CDE8: .4byte gUnknown_8234694 -_0800CDEC: - movs r0, 0 -_0800CDEE: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_800CCF8 - - thumb_func_start sub_800CDF8 -sub_800CDF8: @ 800CDF8 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0x4 - movs r1, 0xAA - bl FillWindowPixelBuffer - ldr r0, _0800CE48 @ =gUnknown_8234638 - bl sub_800D0B4 - ldr r0, _0800CE4C @ =gUnknown_8234688 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x4 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl AddTextPrinterParameterized3 - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x4 - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, _0800CE50 @ =0x000013dd - movs r0, 0x40 - bl SetGpuReg - ldr r1, _0800CE54 @ =0x0000739d - movs r0, 0x44 - bl SetGpuReg - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800CE48: .4byte gUnknown_8234638 -_0800CE4C: .4byte gUnknown_8234688 -_0800CE50: .4byte 0x000013dd -_0800CE54: .4byte 0x0000739d - thumb_func_end sub_800CDF8 - - thumb_func_start sub_800CE58 -sub_800CE58: @ 800CE58 - push {lr} - bl sub_800CE70 - bl sub_800CF3C - bl sub_800CED4 - bl sub_800CFC4 - pop {r0} - bx r0 - thumb_func_end sub_800CE58 - - thumb_func_start sub_800CE70 -sub_800CE70: @ 800CE70 - push {lr} - sub sp, 0x14 - ldr r0, _0800CEC8 @ =gUnknown_823468B - str r0, [sp] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0x4] - ldr r0, _0800CECC @ =gUnknown_841B6D5 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0x2 - movs r3, 0x12 - bl AddTextPrinterParameterized3 - add r1, sp, 0xC - movs r2, 0 - ldr r0, _0800CED0 @ =gSaveBlock2Ptr - ldr r3, [r0] -_0800CE96: - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r1, 0x1 - adds r2, 0x1 - cmp r2, 0x6 - ble _0800CE96 - movs r0, 0xFF - strb r0, [r1] - ldr r0, _0800CEC8 @ =gUnknown_823468B - str r0, [sp] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0x4] - add r0, sp, 0xC - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0x3E - movs r3, 0x12 - bl AddTextPrinterParameterized3 - add sp, 0x14 - pop {r0} - bx r0 - .align 2, 0 -_0800CEC8: .4byte gUnknown_823468B -_0800CECC: .4byte gUnknown_841B6D5 -_0800CED0: .4byte gSaveBlock2Ptr - thumb_func_end sub_800CE70 - thumb_func_start sub_800CED4 sub_800CED4: @ 800CED4 push {r4-r6,lr} @@ -892,7 +14,7 @@ sub_800CED4: @ 800CED4 movs r5, 0x1 negs r5, r5 str r5, [sp, 0x4] - ldr r0, _0800CF34 @ =gUnknown_841B6DC + ldr r0, _0800CF34 @ =gText_Time str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 @@ -929,7 +51,7 @@ sub_800CED4: @ 800CED4 bx r0 .align 2, 0 _0800CF30: .4byte gUnknown_823468B -_0800CF34: .4byte gUnknown_841B6DC +_0800CF34: .4byte gText_Time _0800CF38: .4byte gSaveBlock2Ptr thumb_func_end sub_800CED4 @@ -962,7 +84,7 @@ _0800CF6A: movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] - ldr r0, _0800CFBC @ =gUnknown_841B6E3 + ldr r0, _0800CFBC @ =gText_Pokedex str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 @@ -992,7 +114,7 @@ _0800CFAE: bx r0 .align 2, 0 _0800CFB8: .4byte gUnknown_823468B -_0800CFBC: .4byte gUnknown_841B6E3 +_0800CFBC: .4byte gText_Pokedex _0800CFC0: .4byte gUnknown_841B6EB thumb_func_end sub_800CF3C diff --git a/data/data.s b/data/data.s index da50d9086..1757ea056 100644 --- a/data/data.s +++ b/data/data.s @@ -42,14 +42,16 @@ gUnknown_8234688:: @ 8234688 .incbin "baserom.gba", 0x234688, 0x3 gUnknown_823468B:: @ 823468B - .incbin "baserom.gba", 0x23468B, 0x5 + .incbin "baserom.gba", 0x23468B, 0x3 + .align 2 gUnknown_8234690:: @ 8234690 .incbin "baserom.gba", 0x234690, 0x4 gUnknown_8234694:: @ 8234694 .incbin "baserom.gba", 0x234694, 0x4 + .align 2 gUnknown_8234698:: @ 8234698 .incbin "baserom.gba", 0x234698, 0x20 diff --git a/data/strings.s b/data/strings.s index 7af3a57bc..eccd54800 100644 --- a/data/strings.s +++ b/data/strings.s @@ -48,25 +48,25 @@ gText_EggNickname:: @ 8415A62 gText_Pokemon:: @ 8415A66 .string "POKéMON$" -gUnknown_8415A6E:: @ 8415A6E +gText_NewGame:: @ 8415A6E .string "NEW GAME$" -gUnknown_8415A77:: @ 8415A77 +gText_Continue:: @ 8415A77 .string "CONTINUE$" -gUnknown_8415A80:: @ 0x8415A80 +gTextJP_Options:: @ 0x8415A80 .string "せっていを かえる$" -gUnknown_8415A8A:: @ 0x8415A8A +gUnusedText_MysteryGift:: @ 0x8415A8A .string "MYSTERY GIFT$" -gUnknown_8415A97:: @ 8415A97 +gText_MysteryGift:: @ 8415A97 .string "MYSTERY GIFT$" -gUnknown_8415AA4:: @ 8415AA4 +gText_WirelessAdapterIsNotConnected:: @ 8415AA4 .string "The Wireless Adapter is not\nconnected.$" -gUnknown_8415ACB:: @ 8415ACB +gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached:: @ 8415ACB .string "MYSTERY GIFT can't be used while\nthe Wireless Adapter is attached.$" gUnknown_8415B0E:: @ 0x8415B0E @@ -3037,16 +3037,16 @@ gUnknown_841B69E:: @ 841B69E gUnknown_841B6B9:: @ 841B6B9 .string "Clearing data‥\nPlease wait.$" -gUnknown_841B6D5:: @ 841B6D5 +gText_Player:: @ 841B6D5 .string "PLAYER$" -gUnknown_841B6DC:: @ 841B6DC +gText_Time:: @ 841B6DC .string "TIME$" -gUnknown_841B6E1:: @ 0x841B6E1 +gText_Colon:: @ 0x841B6E1 .string ":$" -gUnknown_841B6E3:: @ 841B6E3 +gText_Pokedex:: @ 841B6E3 .string "POKéDEX$" gUnknown_841B6EB:: @ 841B6EB @@ -4199,7 +4199,7 @@ gText_WonderCardThrownAway:: @ 841ED7B gText_WonderNewsThrownAway:: @ 841ED9C .string "The WONDER NEWS was thrown away.$" -gText_MysteryGift:: @ 841EDBD +gText_MysteryGift2:: @ 841EDBD .string "MYSTERY GIFT$" gText_PickOKCancel:: @ 841EDCA diff --git a/include/link.h b/include/link.h index 51f103745..7c4b871de 100644 --- a/include/link.h +++ b/include/link.h @@ -256,5 +256,6 @@ void sub_8009FE8(void); void ClearLinkCallback_2(void); void sub_80FA42C(void); void sub_800B284(struct LinkPlayer * linkPlayer); +bool8 IsWirelessAdapterConnected(void); #endif // GUARD_LINK_H diff --git a/include/mystery_gift_menu.h b/include/mystery_gift_menu.h index c7b047f56..6fed52119 100644 --- a/include/mystery_gift_menu.h +++ b/include/mystery_gift_menu.h @@ -5,5 +5,6 @@ extern bool8 gGiftIsFromEReader; void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void); void PrintMysteryGiftOrEReaderTopMenu(bool8, bool32); +void c2_mystery_gift(void); #endif //GUARD_MYSTERY_GIFT_MENU_H diff --git a/include/quest_log.h b/include/quest_log.h index 7e86e7c2f..8a2816c74 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -35,6 +35,7 @@ void MapNamePopupWindowIdSetDummy(void); void sub_8111CF0(void); void sub_811089C(void); void sub_8113044(void); +void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId); extern u8 gUnknown_203ADFA; diff --git a/include/strings.h b/include/strings.h index 2dbe3919b..5a746fb6a 100644 --- a/include/strings.h +++ b/include/strings.h @@ -340,5 +340,90 @@ extern const u8 gText_ABtnRegistrationCounter[]; extern const u8 gText_SaveFileCorruptedPrevWillBeLoaded[]; extern const u8 gText_SaveFileHasBeenDeleted[]; extern const u8 gText_1MSubCircuitBoardNotInstalled[]; +extern const u8 gText_NewGame[]; +extern const u8 gText_Continue[]; +extern const u8 gText_MysteryGift[]; +extern const u8 gText_WirelessAdapterIsNotConnected[]; +extern const u8 gText_WirelessAdapterIsNotConnected[]; +extern const u8 gText_WirelessAdapterIsNotConnected[]; +extern const u8 gText_WirelessAdapterIsNotConnected[]; +extern const u8 gText_WirelessAdapterIsNotConnected[]; +extern const u8 gText_WirelessAdapterIsNotConnected[]; +extern const u8 gText_WirelessAdapterIsNotConnected[]; +extern const u8 gText_WirelessAdapterIsNotConnected[]; +extern const u8 gText_WirelessAdapterIsNotConnected[]; +extern const u8 gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached[]; +extern const u8 gText_Player[]; +extern const u8 gText_Time[]; +extern const u8 gText_Colon[]; +extern const u8 gText_Pokedex[]; +extern const u8 gUnknown_841B6EB[]; +extern const u8 gUnknown_841B6EC[]; +extern const u8 gUnknown_841B6F3[]; +extern const u8 gUnknown_841B6F4[]; + +// mystery_gift_menu +extern const u8 gText_PickOKExit[]; +extern const u8 gText_PickOKCancel[]; +extern const u8 gText_MysteryGift2[]; +extern const u8 gJPText_MysteryGift[]; +extern const u8 gJPText_DecideStop[]; +extern const u8 gText_WhatToDoWithCards[]; +extern const u8 gText_WhatToDoWithNews[]; +extern const u8 gText_OkayToDiscardNews[]; +extern const u8 gText_IfThrowAwayCardEventWontHappen[]; +extern const u8 gText_WonderCardThrownAway[]; +extern const u8 gText_WonderNewsThrownAway[]; +extern const u8 gText_DataWillBeSaved[]; +extern const u8 gText_SaveCompletedPressA[]; +extern const u8 gText_WonderCards[]; +extern const u8 gText_WonderNews[]; +extern const u8 gText_Exit3[]; +extern const u8 gText_WirelessCommunication[]; +extern const u8 gText_Friend2[]; +extern const u8 gFameCheckerText_Cancel[]; +extern const u8 gText_Receive[]; +extern const u8 gText_Send[]; +extern const u8 gText_Toss[]; +extern const u8 gText_VarietyOfEventsImportedWireless[]; +extern const u8 gText_WonderCardsInPossession[]; +extern const u8 gText_ReadNewsThatArrived[]; +extern const u8 gText_ReturnToTitle[]; +extern const u8 gText_NothingSentOver[]; +extern const u8 gText_RecordUploadedViaWireless[]; +extern const u8 gText_WonderCardReceived[]; +extern const u8 gText_WonderCardReceivedFrom[]; +extern const u8 gText_WonderNewsReceived[]; +extern const u8 gText_WonderNewsReceivedFrom[]; +extern const u8 gText_NewStampReceived[]; +extern const u8 gText_AlreadyHadCard[]; +extern const u8 gText_AlreadyHadStamp[]; +extern const u8 gText_AlreadyHadNews[]; +extern const u8 gText_NoMoreRoomForStamps[]; +extern const u8 gText_CommunicationCanceled[]; +extern const u8 gText_CantAcceptCardFromTrainer[]; +extern const u8 gText_CantAcceptNewsFromTrainer[]; +extern const u8 gText_CommunicationError[]; +extern const u8 gText_NewTrainerReceived[]; +extern const u8 gText_WonderCardSentTo[]; +extern const u8 gText_WonderNewsSentTo[]; +extern const u8 gText_StampSentTo[]; +extern const u8 gText_OtherTrainerHasCard[]; +extern const u8 gText_OtherTrainerHasStamp[]; +extern const u8 gText_OtherTrainerHasNews[]; +extern const u8 gText_OtherTrainerCanceled[]; +extern const u8 gText_GiftSentTo[]; +extern const u8 gText_CantSendGiftToTrainer[]; +extern const u8 gText_DontHaveCardNewOneInput[]; +extern const u8 gText_DontHaveNewsNewOneInput[]; +extern const u8 gText_WhereShouldCardBeAccessed[]; +extern const u8 gText_WhereShouldNewsBeAccessed[]; +extern const u8 gText_Communicating[]; +extern const u8 gText_ThrowAwayWonderCard[]; +extern const u8 gText_HaventReceivedCardsGift[]; +extern const u8 gText_CommunicationCompleted[]; +extern const u8 gText_HaventReceivedGiftOkayToDiscard[]; +extern const u8 gText_SendingWonderCard[]; +extern const u8 gText_SendingWonderNews[]; #endif //GUARD_STRINGS_H diff --git a/src/main_menu.c b/src/main_menu.c index dfc4fb808..7be99ce2c 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -3,12 +3,23 @@ #include "gpu_regs.h" #include "scanline_effect.h" #include "bg.h" +#include "dma3.h" #include "task.h" #include "text.h" #include "save.h" #include "event_data.h" #include "window.h" +#include "menu.h" +#include "link.h" +#include "oak_speech.h" +#include "overworld.h" +#include "quest_log.h" +#include "mystery_gift_menu.h" #include "strings.h" +#include "sound.h" +#include "title_screen.h" +#include "help_system.h" +#include "constants/songs.h" bool32 sub_800C318(u8 a0); void sub_800C4D0(u8 taskId); @@ -17,16 +28,32 @@ void sub_800C688(u8 taskId); void sub_800C704(u8 taskId); void sub_800C780(u8 taskId); void sub_800C7A0(u8 taskId); +void sub_800C9CC(u8 taskId); +void sub_800CA28(u8 taskId); +void sub_800CA54(u8 taskId); void sub_800CA94(u8 taskId); +void sub_800CB90(u8 taskId); +void sub_800CC68(u8 taskId); +void sub_800CC94(u8 menuType, u8 cursorPos); +bool8 sub_800CCF8(u8 taskId); void sub_800CDF8(const u8 *str); +void sub_800CE58(void); +void sub_800CE70(void); +void sub_800CED4(void); +void sub_800CF3C(void); +void sub_800CFC4(void); void sub_800D044(u8 a0); void sub_800D094(u8 a0); +void sub_800D0B4(const struct WindowTemplate * template); void sub_800D1E8(const struct WindowTemplate * template); extern const struct WindowTemplate gUnknown_8234618[]; extern const u16 gUnknown_8234648[]; extern const u16 gUnknown_8234668[]; +extern const u8 gUnknown_8234688[]; +extern const u8 gUnknown_823468B[]; extern const struct BgTemplate gUnknown_8234690[1]; +extern const u8 gUnknown_8234694[]; void sub_800C2D4(void) { @@ -215,3 +242,304 @@ void sub_800C780(u8 taskId) sub_800C7A0(taskId); } } + +void sub_800C7A0(u8 taskId) +{ + u16 pal; + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WININ, 0x0001); + SetGpuReg(REG_OFFSET_WINOUT, 0x0021); + SetGpuReg(REG_OFFSET_BLDCNT, + BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | + BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0)); + SetGpuReg(REG_OFFSET_BLDY, 7); + if (gSaveBlock2Ptr->playerGender == MALE) + pal = RGB(4, 16, 31); + else + pal = RGB(31, 3, 21); + LoadPalette(&pal, 0xF1, 2); + switch (gTasks[taskId].data[0]) + { + case 0: + default: + FillWindowPixelBuffer(0, PIXEL_FILL(10)); + AddTextPrinterParameterized3(0, 2, 2, 2, gUnknown_8234688, -1, gText_NewGame); + sub_800D0B4(&gUnknown_8234618[0]); + PutWindowTilemap(0); + CopyWindowToVram(0, 3); + break; + case 1: + FillWindowPixelBuffer(1, PIXEL_FILL(10)); + FillWindowPixelBuffer(2, PIXEL_FILL(10)); + AddTextPrinterParameterized3(1, 2, 2, 2, gUnknown_8234688, -1, gText_Continue); + AddTextPrinterParameterized3(2, 2, 2, 2, gUnknown_8234688, -1, gText_NewGame); + sub_800CE58(); + sub_800D0B4(&gUnknown_8234618[1]); + sub_800D0B4(&gUnknown_8234618[2]); + PutWindowTilemap(1); + PutWindowTilemap(2); + CopyWindowToVram(1, 2); + CopyWindowToVram(2, 3); + break; + case 2: + FillWindowPixelBuffer(1, PIXEL_FILL(10)); + FillWindowPixelBuffer(2, PIXEL_FILL(10)); + FillWindowPixelBuffer(3, PIXEL_FILL(10)); + AddTextPrinterParameterized3(1, 2, 2, 2, gUnknown_8234688, -1, gText_Continue); + AddTextPrinterParameterized3(2, 2, 2, 2, gUnknown_8234688, -1, gText_NewGame); + gTasks[taskId].data[10] = 1; + AddTextPrinterParameterized3(3, 2, 2, 2, gUnknown_8234688, -1, gText_MysteryGift); + sub_800CE58(); + sub_800D0B4(&gUnknown_8234618[1]); + sub_800D0B4(&gUnknown_8234618[2]); + sub_800D0B4(&gUnknown_8234618[3]); + PutWindowTilemap(1); + PutWindowTilemap(2); + PutWindowTilemap(3); + CopyWindowToVram(1, 2); + CopyWindowToVram(2, 2); + CopyWindowToVram(3, 3); + break; + } + gTasks[taskId].func = sub_800C9CC; +} + +void sub_800C9CC(u8 taskId) +{ + if (CheckForSpaceForDma3Request(-1) != -1) + { + gTasks[taskId].func = sub_800CA28; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0xFFFF); + ShowBg(0); + SetVBlankCallback(sub_800C2EC); + } +} + +void sub_800CA28(u8 taskId) +{ + sub_800CC94(gTasks[taskId].data[0], gTasks[taskId].data[1]); + gTasks[taskId].func = sub_800CA54; +} + +void sub_800CA54(u8 taskId) +{ + if (!gPaletteFade.active && sub_800CCF8(taskId)) + { + gTasks[taskId].func = sub_800CA28; + } +} + +void sub_800CA94(u8 taskId) +{ + s32 r0; + if (!gPaletteFade.active) + { + switch (gTasks[taskId].data[0]) + { + default: + case 0: + r0 = 0; + break; + case 1: + switch (gTasks[taskId].data[1]) + { + default: + case 0: + r0 = 1; + break; + case 1: + r0 = 0; + break; + } + break; + case 2: + switch (gTasks[taskId].data[1]) + { + default: + case 0: + r0 = 1; + break; + case 1: + r0 = 0; + break; + case 2: + if (!IsWirelessAdapterConnected()) + { + sub_800D094(0); + gTasks[taskId].func = sub_800CB90; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + return; + } + else + { + r0 = 2; + } + break; + } + break; + } + switch (r0) + { + default: + case 0: + gUnknown_2031DE0 = 0; + FreeAllWindowBuffers(); + DestroyTask(taskId); + StartNewGameScene(); + break; + case 1: + gPlttBufferUnfaded[0] = RGB_BLACK; + gPlttBufferFaded[0] = RGB_BLACK; + gUnknown_2031DE0 = 0; + FreeAllWindowBuffers(); + TrySetUpQuestLogScenes_ElseContinueFromSave(taskId); + break; + case 2: + SetMainCallback2(c2_mystery_gift); + sub_812B478(); + FreeAllWindowBuffers(); + DestroyTask(taskId); + break; + } + } +} + +void sub_800CB90(u8 taskId) +{ + switch (gTasks[taskId].data[9]) + { + case 0: + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + if (gTasks[taskId].data[10] == 1) + sub_800CDF8(gText_WirelessAdapterIsNotConnected); + else + sub_800CDF8(gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached); + gTasks[taskId].data[9]++; + break; + case 1: + if (!gPaletteFade.active) + gTasks[taskId].data[9]++; + break; + case 2: + RunTextPrinters(); + if (!IsTextPrinterActive(4)) + gTasks[taskId].data[9]++; + break; + case 3: + if (JOY_NEW(A_BUTTON | B_BUTTON)) + { + PlaySE(SE_SELECT); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gTasks[taskId].func = sub_800CC68; + } + break; + } +} + +void sub_800CC68(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(CB2_InitTitleScreen); + DestroyTask(taskId); + } +} + +void sub_800CC94(u8 menuType, u8 cursorPos) +{ + u16 win0v1, win0v2; + SetGpuReg(REG_OFFSET_WIN0H, 0x12DE); + switch (menuType) + { + default: + case 0: + win0v1 = 0x00; + win0v2 = 0x20; + break; + case 1: + case 2: + switch (cursorPos) + { + default: + case 0: + win0v1 = 0x00; + win0v2 = 0x60; + break; + case 1: + win0v1 = 0x60 << 8; + win0v2 = 0x80; + break; + case 2: + win0v1 = 0x80 << 8; + win0v2 = 0xA0; + break; + } + break; + } + SetGpuReg(REG_OFFSET_WIN0V, (win0v1 + (2 << 8)) | (win0v2 - 2)); +} + +bool8 sub_800CCF8(u8 taskId) +{ + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + IsWirelessAdapterConnected(); // called for its side effects only + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gTasks[taskId].func = sub_800CA94; + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + SetGpuReg(REG_OFFSET_WIN0H, 0xF0); + SetGpuReg(REG_OFFSET_WIN0V, 0xA0); + gTasks[taskId].func = sub_800CC68; + } + else if (JOY_NEW(DPAD_UP) && gTasks[taskId].data[1] > 0) + { + gTasks[taskId].data[1]--; + return TRUE; + } + else if (JOY_NEW(DPAD_DOWN) && gTasks[taskId].data[1] < gUnknown_8234694[gTasks[taskId].data[0]]) + { + gTasks[taskId].data[1]++; + return TRUE; + } + + return FALSE; +} + +void sub_800CDF8(const u8 *str) +{ + FillWindowPixelBuffer(4, PIXEL_FILL(10)); + sub_800D0B4(&gUnknown_8234618[4]); + AddTextPrinterParameterized3(4, 2, 0, 2, gUnknown_8234688, 2, str); + PutWindowTilemap(4); + CopyWindowToVram(4, 2); + SetGpuReg(REG_OFFSET_WIN0H, 0x13DD); + SetGpuReg(REG_OFFSET_WIN0V, 0x739D); +} + +void sub_800CE58(void) +{ + sub_800CE70(); + sub_800CF3C(); + sub_800CED4(); + sub_800CFC4(); +} + +void sub_800CE70(void) +{ + s32 i; + u8 name[OT_NAME_LENGTH + 1]; + u8 *ptr; + AddTextPrinterParameterized3(1, 2, 2, 18, gUnknown_823468B, -1, gText_Player); + ptr = name; + for (i = 0; i < OT_NAME_LENGTH; i++) + *ptr++ = gSaveBlock2Ptr->playerName[i]; + *ptr = EOS; + AddTextPrinterParameterized3(1, 2, 62, 18, gUnknown_823468B, -1, name); +} diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index dbc685602..39efed6eb 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -24,6 +24,7 @@ #include "mevent_server.h" #include "menews_jisan.h" #include "help_system.h" +#include "strings.h" #include "constants/songs.h" EWRAM_DATA u8 sDownArrowCounterAndYCoordIdx[8] = {}; @@ -33,69 +34,6 @@ void task_add_00_mystery_gift(void); void task00_mystery_gift(u8 taskId); void task_add_00_ereader(void); -extern const u8 gText_PickOKExit[]; -extern const u8 gText_PickOKCancel[]; -extern const u8 gText_MysteryGift[]; -extern const u8 gJPText_MysteryGift[]; -extern const u8 gJPText_DecideStop[]; -extern const u8 gText_WhatToDoWithCards[]; -extern const u8 gText_WhatToDoWithNews[]; -extern const u8 gText_OkayToDiscardNews[]; -extern const u8 gText_IfThrowAwayCardEventWontHappen[]; -extern const u8 gText_WonderCardThrownAway[]; -extern const u8 gText_WonderNewsThrownAway[]; -extern const u8 gText_DataWillBeSaved[]; -extern const u8 gText_SaveCompletedPressA[]; -extern const u8 gText_WonderCards[]; -extern const u8 gText_WonderNews[]; -extern const u8 gText_Exit3[]; -extern const u8 gText_WirelessCommunication[]; -extern const u8 gText_Friend2[]; -extern const u8 gFameCheckerText_Cancel[]; -extern const u8 gText_Receive[]; -extern const u8 gText_Send[]; -extern const u8 gText_Toss[]; -extern const u8 gText_VarietyOfEventsImportedWireless[]; -extern const u8 gText_WonderCardsInPossession[]; -extern const u8 gText_ReadNewsThatArrived[]; -extern const u8 gText_ReturnToTitle[]; -extern const u8 gText_NothingSentOver[]; -extern const u8 gText_RecordUploadedViaWireless[]; -extern const u8 gText_WonderCardReceived[]; -extern const u8 gText_WonderCardReceivedFrom[]; -extern const u8 gText_WonderNewsReceived[]; -extern const u8 gText_WonderNewsReceivedFrom[]; -extern const u8 gText_NewStampReceived[]; -extern const u8 gText_AlreadyHadCard[]; -extern const u8 gText_AlreadyHadStamp[]; -extern const u8 gText_AlreadyHadNews[]; -extern const u8 gText_NoMoreRoomForStamps[]; -extern const u8 gText_CommunicationCanceled[]; -extern const u8 gText_CantAcceptCardFromTrainer[]; -extern const u8 gText_CantAcceptNewsFromTrainer[]; -extern const u8 gText_CommunicationError[]; -extern const u8 gText_NewTrainerReceived[]; -extern const u8 gText_WonderCardSentTo[]; -extern const u8 gText_WonderNewsSentTo[]; -extern const u8 gText_StampSentTo[]; -extern const u8 gText_OtherTrainerHasCard[]; -extern const u8 gText_OtherTrainerHasStamp[]; -extern const u8 gText_OtherTrainerHasNews[]; -extern const u8 gText_OtherTrainerCanceled[]; -extern const u8 gText_GiftSentTo[]; -extern const u8 gText_CantSendGiftToTrainer[]; -extern const u8 gText_DontHaveCardNewOneInput[]; -extern const u8 gText_DontHaveNewsNewOneInput[]; -extern const u8 gText_WhereShouldCardBeAccessed[]; -extern const u8 gText_WhereShouldNewsBeAccessed[]; -extern const u8 gText_Communicating[]; -extern const u8 gText_ThrowAwayWonderCard[]; -extern const u8 gText_HaventReceivedCardsGift[]; -extern const u8 gText_CommunicationCompleted[]; -extern const u8 gText_HaventReceivedGiftOkayToDiscard[]; -extern const u8 gText_SendingWonderCard[]; -extern const u8 gText_SendingWonderNews[]; - const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal"); const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz"); @@ -538,7 +476,7 @@ void PrintMysteryGiftOrEReaderTopMenu(bool8 mg_or_ereader, bool32 usePickOkCance if (!mg_or_ereader) { src = usePickOkCancel == TRUE ? gText_PickOKExit : gText_PickOKCancel; - AddTextPrinterParameterized4(0, 2, 2, 2, 0, 0, sMG_Ereader_TextColor_1, 0, gText_MysteryGift); + AddTextPrinterParameterized4(0, 2, 2, 2, 0, 0, sMG_Ereader_TextColor_1, 0, gText_MysteryGift2); width = 222 - GetStringWidth(0, src, 0); AddTextPrinterParameterized4(0, 0, width, 2, 0, 0, sMG_Ereader_TextColor_1, 0, src); } diff --git a/src/quest_log.c b/src/quest_log.c index 065b42cef..f98357b32 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -93,7 +93,7 @@ static struct UnkStruct_300201C * gUnknown_300201C; static u16 gUnknown_3002020; EWRAM_DATA u8 gUnknown_203ADF8 = 0; -EWRAM_DATA u8 gUnknown_203ADF9 = 0; +static EWRAM_DATA u8 sNumScenes = 0; EWRAM_DATA u8 gUnknown_203ADFA = 0; EWRAM_DATA u16 gUnknown_203ADFC = 0; EWRAM_DATA u8 gUnknown_203ADFE[3] = {0}; @@ -840,19 +840,19 @@ bool8 sub_8110E68(struct UnkStruct_203AE98 * a0) return TRUE; } -void sub_8110F14(u8 taskId) +void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId) { u8 i; sub_811381C(); - gUnknown_203ADF9 = 0; + sNumScenes = 0; for (i = 0; i < 4; i++) { if (gSaveBlock1Ptr->questLog[i].unk_000) - gUnknown_203ADF9++; + sNumScenes++; } - if (gUnknown_203ADF9 != 0) + if (sNumScenes != 0) { gUnknown_3005ECC = FALSE; sub_8110F90(taskId); @@ -1221,7 +1221,7 @@ void sub_8111914(void) ScriptContext2_Enable(); if (++gUnknown_203ADF8 < 4 && gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000) { - gUnknown_203ADF9--; + sNumScenes--; sub_8111368(); } else @@ -1402,7 +1402,7 @@ bool8 sub_8111CD0(void) void sub_8111CF0(void) { if (gUnknown_203ADFA == 2) - sub_8111070(gUnknown_203ADF9); + sub_8111070(sNumScenes); } void sub_8111D10(void) |