finish item_pc

This commit is contained in:
PikalaxALT
2019-06-16 21:14:16 -04:00
parent 105716d701
commit 632a7e8c08
6 changed files with 307 additions and 743 deletions
-728
View File
@@ -1,728 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_810E578
sub_810E578: @ 810E578
push {r4-r6,lr}
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
lsls r5, r6, 2
adds r5, r6
lsls r5, 3
ldr r0, _0810E5D4 @ =gTasks+0x8
adds r5, r0
movs r0, 0x2
bl sub_810EAF0
movs r0, 0x1
bl PutWindowTilemap
ldrb r0, [r5]
ldr r4, _0810E5D8 @ =gUnknown_203ADCC + 0x4
adds r2, r4, 0x2
adds r1, r4, 0
bl DestroyListMenu
bl sub_810DDA4
bl sub_810DBF0
bl sub_810D878
ldr r0, _0810E5DC @ =gMultiuseListMenuTemplate
subs r4, 0x4
ldrh r1, [r4, 0x4]
ldrh r2, [r4, 0x6]
bl ListMenuInit
lsls r0, 24
lsrs r0, 24
strh r0, [r5]
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
adds r0, r6, 0
bl sub_810DFB0
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810E5D4: .4byte gTasks+0x8
_0810E5D8: .4byte gUnknown_203ADCC + 0x4
_0810E5DC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_810E578
thumb_func_start sub_810E5E0
sub_810E5E0: @ 810E5E0
push {r4-r6,lr}
sub sp, 0x14
lsls r0, 16
lsrs r0, 16
bl ItemPc_GetItemIdBySlotId
lsls r0, 16
lsrs r0, 16
ldr r6, _0810E660 @ =gStringVar1
adds r1, r6, 0
bl CopyItemName
ldr r5, _0810E664 @ =gStringVar4
ldr r1, _0810E668 @ =gUnknown_84177AC
adds r0, r5, 0
bl StringExpandPlaceholders
movs r0, 0x1
bl sub_810EAB4
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
str r1, [sp]
movs r4, 0
str r4, [sp, 0x4]
str r4, [sp, 0x8]
adds r2, r5, 0
movs r3, 0
bl AddTextPrinterParameterized
adds r0, r6, 0
movs r1, 0x1
movs r2, 0x2
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r1, _0810E66C @ =gText_TimesStrVar1
adds r0, r5, 0
bl StringExpandPlaceholders
movs r0, 0x3
bl sub_810EA9C
movs r0, 0xA
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r4, [sp, 0x8]
str r4, [sp, 0xC]
str r0, [sp, 0x10]
movs r0, 0x3
movs r1, 0
adds r2, r5, 0
movs r3, 0x8
bl sub_810EA34
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810E660: .4byte gStringVar1
_0810E664: .4byte gStringVar4
_0810E668: .4byte gUnknown_84177AC
_0810E66C: .4byte gText_TimesStrVar1
thumb_func_end sub_810E5E0
thumb_func_start sub_810E670
sub_810E670: @ 810E670
push {r4,lr}
sub sp, 0x14
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
movs r0, 0x1C
str r0, [sp]
movs r0, 0xC
str r0, [sp, 0x4]
movs r0, 0x3
movs r1, 0x11
movs r2, 0xA
movs r3, 0xA
bl FillWindowPixelRect
ldr r0, _0810E6CC @ =gStringVar1
lsls r4, 16
asrs r4, 16
adds r1, r4, 0
movs r2, 0x2
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _0810E6D0 @ =gStringVar4
ldr r1, _0810E6D4 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
str r0, [sp]
movs r1, 0x1
str r1, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
str r0, [sp, 0xC]
str r1, [sp, 0x10]
movs r0, 0x3
movs r1, 0
adds r2, r4, 0
movs r3, 0x8
bl sub_810EA34
add sp, 0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810E6CC: .4byte gStringVar1
_0810E6D0: .4byte gStringVar4
_0810E6D4: .4byte gText_TimesStrVar1
thumb_func_end sub_810E670
thumb_func_start sub_810E6D8
sub_810E6D8: @ 810E6D8
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _0810E708 @ =gTasks+0x8
adds r4, r0, r1
adds r0, r4, 0
adds r0, 0x10
ldrh r1, [r4, 0x4]
bl sub_80BF848
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0810E70C
movs r1, 0x10
ldrsh r0, [r4, r1]
bl sub_810E670
b _0810E796
.align 2, 0
_0810E708: .4byte gTasks+0x8
_0810E70C:
ldr r0, _0810E74C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810E750
movs r0, 0x5
bl PlaySE
movs r0, 0x1
bl sub_810EAF0
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0
bl PutWindowTilemap
ldrb r0, [r4]
movs r1, 0x1
bl sub_810DAB4
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
bl sub_810DBD0
adds r0, r5, 0
bl sub_810E418
b _0810E796
.align 2, 0
_0810E74C: .4byte gMain
_0810E750:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0810E796
movs r0, 0x5
bl PlaySE
movs r0, 0x3
movs r1, 0
bl sub_810F4D8
movs r0, 0x1
bl sub_810EAF0
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
bl PutWindowTilemap
ldrb r0, [r4]
movs r1, 0x1
bl sub_810DAB4
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
bl sub_810DBD0
adds r0, r6, 0
bl sub_810DFB0
_0810E796:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_810E6D8
thumb_func_start sub_810E79C
sub_810E79C: @ 810E79C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl CalculatePlayerPartyCount
lsls r0, 24
cmp r0, 0
bne _0810E7DC
movs r0, 0x4
movs r1, 0
bl sub_810F4D8
movs r0, 0
bl sub_810EAF0
movs r0, 0x4
bl ClearWindowTilemap
movs r0, 0
bl PutWindowTilemap
ldr r1, _0810E7D4 @ =gText_ThereIsNoPokemon
ldr r2, _0810E7D8 @ =sub_810E848
adds r0, r4, 0
bl sub_810EB30
b _0810E7EA
.align 2, 0
_0810E7D4: .4byte gText_ThereIsNoPokemon
_0810E7D8: .4byte sub_810E848
_0810E7DC:
ldr r0, _0810E7F0 @ =gUnknown_203ADBC
ldr r1, [r0]
ldr r0, _0810E7F4 @ =sub_810E7F8
str r0, [r1]
adds r0, r4, 0
bl sub_810DC8C
_0810E7EA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810E7F0: .4byte gUnknown_203ADBC
_0810E7F4: .4byte sub_810E7F8
thumb_func_end sub_810E79C
thumb_func_start sub_810E7F8
sub_810E7F8: @ 810E7F8
push {lr}
sub sp, 0xC
movs r0, 0x6
str r0, [sp]
ldr r0, _0810E82C @ =sub_811FB28
str r0, [sp, 0x4]
ldr r0, _0810E830 @ =sub_810E838
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0x6
movs r3, 0
bl sub_811EA44
bl sub_810DD54
lsls r0, 24
lsrs r0, 24
bl ItemPc_GetItemIdBySlotId
ldr r1, _0810E834 @ =gUnknown_203B0A0
strh r0, [r1, 0xC]
add sp, 0xC
pop {r0}
bx r0
.align 2, 0
_0810E82C: .4byte sub_811FB28
_0810E830: .4byte sub_810E838
_0810E834: .4byte gUnknown_203B0A0
thumb_func_end sub_810E7F8
thumb_func_start sub_810E838
sub_810E838: @ 810E838
push {lr}
movs r0, 0x1
movs r1, 0
bl sub_810D3F4
pop {r0}
bx r0
thumb_func_end sub_810E838
thumb_func_start sub_810E848
sub_810E848: @ 810E848
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, _0810E898 @ =gTasks+0x8
adds r5, r0, r1
ldr r0, _0810E89C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810E892
movs r0, 0x5
bl PlaySE
movs r0, 0x5
movs r1, 0
bl sub_810F260
movs r0, 0x5
bl ClearWindowTilemap
movs r0, 0x1
bl PutWindowTilemap
ldrb r0, [r5]
movs r1, 0x1
bl sub_810DAB4
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
adds r0, r4, 0
bl sub_810DFB0
_0810E892:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810E898: .4byte gTasks+0x8
_0810E89C: .4byte gMain
thumb_func_end sub_810E848
thumb_func_start sub_810E8A0
sub_810E8A0: @ 810E8A0
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, _0810E8EC @ =gTasks+0x8
adds r4, r0
movs r0, 0x4
movs r1, 0
bl sub_810F4D8
movs r0, 0
bl sub_810EAF0
movs r0, 0x4
bl ClearWindowTilemap
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
bl PutWindowTilemap
ldrb r0, [r4]
movs r1, 0x1
bl sub_810DAB4
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
adds r0, r5, 0
bl sub_810DFB0
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810E8EC: .4byte gTasks+0x8
thumb_func_end sub_810E8A0
thumb_func_start sub_810E8F0
sub_810E8F0: @ 810E8F0
push {r4,lr}
ldr r0, _0810E974 @ =gUnknown_8453F98
bl InitWindows
bl DeactivateAllTextPrinters
movs r1, 0xF0
lsls r1, 2
movs r0, 0
movs r2, 0xE0
bl sub_815001C
ldr r1, _0810E978 @ =0x000003a3
movs r0, 0
movs r2, 0xC0
bl sub_814FF2C
movs r1, 0xEB
lsls r1, 2
movs r0, 0
movs r2, 0xB0
bl sub_814FEAC
movs r0, 0x2
bl stdpal_get
movs r1, 0xD0
movs r2, 0x20
bl LoadPalette
ldr r0, _0810E97C @ =gTMCaseMainWindowPalette
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
movs r4, 0
_0810E938:
adds r0, r4, 0
movs r1, 0
bl FillWindowPixelBuffer
adds r0, r4, 0
bl PutWindowTilemap
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _0810E938
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r4, 0
ldr r3, _0810E980 @ =gUnknown_203ADD8
movs r2, 0xFF
_0810E95C:
adds r0, r4, r3
ldrb r1, [r0]
orrs r1, r2
strb r1, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _0810E95C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810E974: .4byte gUnknown_8453F98
_0810E978: .4byte 0x000003a3
_0810E97C: .4byte gTMCaseMainWindowPalette
_0810E980: .4byte gUnknown_203ADD8
thumb_func_end sub_810E8F0
thumb_func_start sub_810E984
sub_810E984: @ 810E984
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x10
ldr r6, [sp, 0x28]
ldr r4, [sp, 0x2C]
mov r8, r4
ldr r4, [sp, 0x30]
mov r9, r4
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
lsls r6, 24
lsrs r6, 24
mov r4, r8
lsls r4, 24
lsrs r4, 24
mov r8, r4
mov r4, r9
lsls r4, 24
lsrs r4, 24
mov r9, r4
str r1, [sp]
mov r1, sp
strb r0, [r1, 0x4]
movs r0, 0x3
strb r0, [r1, 0x5]
mov r0, sp
strb r2, [r0, 0x6]
strb r3, [r0, 0x7]
strb r2, [r0, 0x8]
strb r3, [r0, 0x9]
mov r2, sp
ldrb r1, [r2, 0xC]
movs r5, 0xF
adds r0, r5, 0
ands r0, r1
movs r1, 0x20
orrs r0, r1
strb r0, [r2, 0xC]
ldrb r1, [r2, 0xD]
movs r4, 0x10
negs r4, r4
adds r0, r4, 0
ands r0, r1
strb r0, [r2, 0xD]
mov r1, sp
movs r0, 0x30
strb r0, [r1, 0xD]
movs r0, 0x3
movs r1, 0x4
bl GetFontAttribute
mov r1, sp
ands r5, r0
ldrb r0, [r1, 0xC]
ands r4, r0
orrs r4, r5
strb r4, [r1, 0xC]
movs r0, 0x3
movs r1, 0x2
bl GetFontAttribute
mov r1, sp
adds r6, r0
strb r6, [r1, 0xA]
movs r0, 0x3
movs r1, 0x3
bl GetFontAttribute
mov r1, sp
add r8, r0
mov r0, r8
strb r0, [r1, 0xB]
mov r0, sp
mov r1, r9
movs r2, 0
bl AddTextPrinter
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_810E984
thumb_func_start sub_810EA34
sub_810EA34: @ 810EA34
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
mov r9, r3
ldr r3, [sp, 0x30]
ldr r4, [sp, 0x34]
ldr r6, [sp, 0x38]
ldr r5, [sp, 0x3C]
mov r8, r5
ldr r5, [sp, 0x40]
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
mov r7, r9
lsls r7, 24
lsrs r7, 24
mov r9, r7
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r6, [sp, 0x4]
lsls r4, r5, 1
adds r4, r5
ldr r5, _0810EA98 @ =gUnknown_8453F8C
adds r4, r5
str r4, [sp, 0x8]
mov r4, r8
lsls r4, 24
asrs r4, 24
str r4, [sp, 0xC]
str r2, [sp, 0x10]
mov r2, r9
bl AddTextPrinterParameterized4
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810EA98: .4byte gUnknown_8453F8C
thumb_func_end sub_810EA34
thumb_func_start sub_810EA9C
sub_810EA9C: @ 810EA9C
push {lr}
lsls r0, 24
lsrs r0, 24
movs r2, 0xF0
lsls r2, 2
movs r1, 0
movs r3, 0xE
bl SetWindowBorderStyle
pop {r0}
bx r0
thumb_func_end sub_810EA9C
thumb_func_start sub_810EAB4
sub_810EAB4: @ 810EAB4
push {r4,lr}
lsls r0, 24
lsrs r1, r0, 24
ldr r0, _0810EAE4 @ =gUnknown_203ADD8
adds r4, r1, r0
ldrb r0, [r4]
cmp r0, 0xFF
bne _0810EADC
lsls r0, r1, 3
ldr r1, _0810EAE8 @ =gUnknown_8453FD0
adds r0, r1
bl AddWindow
strb r0, [r4]
ldrb r0, [r4]
ldr r2, _0810EAEC @ =0x000003a3
movs r1, 0x1
movs r3, 0xC
bl SetWindowBorderStyle
_0810EADC:
ldrb r0, [r4]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0810EAE4: .4byte gUnknown_203ADD8
_0810EAE8: .4byte gUnknown_8453FD0
_0810EAEC: .4byte 0x000003a3
thumb_func_end sub_810EAB4
thumb_func_start sub_810EAF0
sub_810EAF0: @ 810EAF0
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _0810EB1C @ =gUnknown_203ADD8
adds r4, r0
ldrb r0, [r4]
movs r1, 0
bl sub_810F4D8
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0xFF
strb r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810EB1C: .4byte gUnknown_203ADD8
thumb_func_end sub_810EAF0
thumb_func_start sub_810EB20
sub_810EB20: @ 810EB20
lsls r0, 24
lsrs r0, 24
ldr r1, _0810EB2C @ =gUnknown_203ADD8
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0810EB2C: .4byte gUnknown_203ADD8
thumb_func_end sub_810EB20
thumb_func_start sub_810EB30
sub_810EB30: @ 810EB30
push {r4-r6,lr}
sub sp, 0x10
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
lsls r4, 24
lsrs r4, 24
bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
movs r2, 0xEB
lsls r2, 2
movs r1, 0x2
str r1, [sp]
str r0, [sp, 0x4]
str r5, [sp, 0x8]
str r6, [sp, 0xC]
adds r0, r4, 0
movs r1, 0x5
movs r3, 0xB
bl DisplayMessageAndContinueTask
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_810EB30
.align 2, 0 @ Don't pad with nop.
+1 -10
View File
@@ -3073,16 +3073,7 @@ gUnknown_8453094:: @ 8453094
.section .rodata.8453F6C
// item_pc.o
gUnknown_8453F8C:: @ 8453F8C
.incbin "baserom.gba", 0x453F8C, 0xC
gUnknown_8453F98:: @ 8453F98
.incbin "baserom.gba", 0x453F98, 0x38
gUnknown_8453FD0:: @ 8453FD0
.incbin "baserom.gba", 0x453FD0, 0x18
// mailbox_pc.o
gUnknown_8453FE8:: @ 8453FE8
.incbin "baserom.gba", 0x453FE8, 0x18
+1
View File
@@ -51,5 +51,6 @@ void sub_8120760(u8 taskId, u8 a1, s8 a2, s16 amount, TaskFunc followupFunc);
void GetMonNickname(const struct Pokemon * mon, u8 * dest);
void sub_81202F8(const u8 * src, u8 a1);
bool8 sub_8120370(void);
void sub_811EA44(u8 a, u8 b, u8 c, u8 d, u8 messageId, TaskFunc task, MainCallback callback);
#endif // GUARD_PARTY_MENU_H
+1
View File
@@ -155,6 +155,7 @@ extern const u8 gUnknown_84162FF[];
extern const u8 gUnknown_841633F[];
extern const u8 gUnknown_8416655[];
extern const u8 gUnknown_841778A[];
extern const u8 gUnknown_84177AC[];
extern const u8 gUnknown_84177C5[];
extern const u8 gUnknown_84178A7[];
extern const u8 gUnknown_84178B5[];
+303 -2
View File
@@ -24,6 +24,7 @@
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "text_window.h"
#include "constants/items.h"
#include "constants/songs.h"
@@ -52,6 +53,7 @@ EWRAM_DATA u8 * gUnknown_203ADC0 = NULL;
EWRAM_DATA struct ListMenuItem * gUnknown_203ADC4 = NULL;
EWRAM_DATA void * gUnknown_203ADC8 = NULL;
EWRAM_DATA struct ItemPcStaticResources gUnknown_203ADCC = {};
EWRAM_DATA u8 gUnknown_203ADD8[3] = {};
extern const struct CompressedSpriteSheet gUnknown_83D4240;
extern const struct CompressedSpritePalette gUnknown_83D4248;
@@ -89,15 +91,19 @@ void sub_810E418(u8 taskId);
void sub_810E4F4(u8 taskId);
void sub_810E548(u8 taskId);
void sub_810E578(u8 taskId);
void sub_810E5E0(u16 itemId);
void sub_810E5E0(u16 slotId);
void sub_810E6D8(u8 taskId);
void sub_810E79C(u8 taskId);
void sub_810E7F8(void);
void sub_810E838(void);
void sub_810E848(u8 taskId);
void sub_810E8A0(u8 taskId);
void sub_810E8F0(void);
void sub_810EA34(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
void sub_810EA9C(u8 windowId);
u8 sub_810EAB4(u8 idx);
void sub_810EAF0(u8 idx);
void sub_810EB30(u8 taskId, const u8 * str, TaskFunc taskFunc);
const struct BgTemplate gUnknown_8453F6C[2] = {
{
@@ -119,6 +125,93 @@ const struct MenuAction gUnknown_8453F74[] = {
{gFameCheckerText_Cancel, {.void_u8 = sub_810E8A0}}
};
const struct TextColor gUnknown_8453F8C[] = {
{0, 1, 2},
{0, 2, 3},
{0, 3, 2},
{0, 10, 2}
};
const struct WindowTemplate gUnknown_8453F98[] = {
{
.bg = 0,
.tilemapLeft = 0x07,
.tilemapTop = 0x01,
.width = 0x13,
.height = 0x0c,
.paletteNum = 0x0f,
.baseBlock = 0x02bf
}, {
.bg = 0,
.tilemapLeft = 0x05,
.tilemapTop = 0x0e,
.width = 0x19,
.height = 0x06,
.paletteNum = 0x0d,
.baseBlock = 0x0229
}, {
.bg = 0,
.tilemapLeft = 0x01,
.tilemapTop = 0x01,
.width = 0x05,
.height = 0x04,
.paletteNum = 0x0f,
.baseBlock = 0x0215
}, {
.bg = 0,
.tilemapLeft = 0x18,
.tilemapTop = 0x0f,
.width = 0x05,
.height = 0x04,
.paletteNum = 0x0f,
.baseBlock = 0x0201
}, {
.bg = 0,
.tilemapLeft = 0x16,
.tilemapTop = 0x0d,
.width = 0x07,
.height = 0x06,
.paletteNum = 0x0f,
.baseBlock = 0x01d7
}, {
.bg = 0,
.tilemapLeft = 0x02,
.tilemapTop = 0x0f,
.width = 0x1a,
.height = 0x04,
.paletteNum = 0x0b,
.baseBlock = 0x016f
}, DUMMY_WIN_TEMPLATE
};
const struct WindowTemplate gUnknown_8453FD0[] = {
{
.bg = 0,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x0e,
.height = 0x04,
.paletteNum = 0x0c,
.baseBlock = 0x0137
}, {
.bg = 0,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x10,
.height = 0x04,
.paletteNum = 0x0c,
.baseBlock = 0x0137
}, {
.bg = 0,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x17,
.height = 0x04,
.paletteNum = 0x0c,
.baseBlock = 0x009b
}
};
void sub_810D3F4(u8 a0, MainCallback callback)
{
u8 i;
@@ -781,7 +874,7 @@ void sub_810E3A4(u8 taskId)
{
s16 * data = gTasks[taskId].data;
sub_810F4D8(4, 0);
sub_810F4D8(4, FALSE);
sub_810EAF0(0);
ClearWindowTilemap(4);
data[8] = 1;
@@ -847,3 +940,211 @@ void sub_810E548(u8 taskId)
sub_810E578(taskId);
}
}
void sub_810E578(u8 taskId)
{
s16 * data = gTasks[taskId].data;
sub_810EAF0(2);
PutWindowTilemap(1);
DestroyListMenu(data[0], &gUnknown_203ADCC.field_4, &gUnknown_203ADCC.field_6);
sub_810DDA4();
sub_810DBF0();
sub_810D878();
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ADCC.field_4, gUnknown_203ADCC.field_6);
schedule_bg_copy_tilemap_to_vram(0);
sub_810DFB0(taskId);
}
void sub_810E5E0(u16 slotId)
{
u16 itemId = ItemPc_GetItemIdBySlotId(slotId);
CopyItemName(itemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gUnknown_84177AC);
AddTextPrinterParameterized(sub_810EAB4(1), 2, gStringVar4, 0, 2, 0, NULL);
ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 3);
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
sub_810EA9C(3);
sub_810EA34(3, 0, gStringVar4, 8, 10, 1, 0, 0, 1);
schedule_bg_copy_tilemap_to_vram(0);
}
void sub_810E670(s16 quantity)
{
FillWindowPixelRect(3, 0x11, 10, 10, 28, 12);
ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, 3);
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
sub_810EA34(3, 0, gStringVar4, 8, 10, 1, 0, 0, 1);
}
void sub_810E6D8(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (sub_80BF848(&data[8], data[2]) == TRUE)
sub_810E670(data[8]);
else if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
sub_810EAF0(1);
ClearWindowTilemap(3);
PutWindowTilemap(0);
sub_810DAB4(data[0], 1);
schedule_bg_copy_tilemap_to_vram(0);
sub_810DBD0();
sub_810E418(taskId);
}
else if (JOY_NEW(B_BUTTON))
{
PlaySE(SE_SELECT);
sub_810F4D8(3, FALSE);
sub_810EAF0(1);
ClearWindowTilemap(3);
PutWindowTilemap(0);
PutWindowTilemap(1);
sub_810DAB4(data[0], 1);
schedule_bg_copy_tilemap_to_vram(0);
sub_810DBD0();
sub_810DFB0(taskId);
}
}
void sub_810E79C(u8 taskId)
{
if (CalculatePlayerPartyCount() == 0)
{
sub_810F4D8(4, FALSE);
sub_810EAF0(0);
ClearWindowTilemap(4);
PutWindowTilemap(0);
sub_810EB30(taskId, gText_ThereIsNoPokemon, sub_810E848);
}
else
{
gUnknown_203ADBC->field_00 = sub_810E7F8;
sub_810DC8C(taskId);
}
}
void sub_810E7F8(void)
{
sub_811EA44(0, 0, 6, 0, 6, sub_811FB28, sub_810E838);
gUnknown_203B0A0.unkC = ItemPc_GetItemIdBySlotId(sub_810DD54());
}
void sub_810E838(void)
{
sub_810D3F4(1, NULL);
}
void sub_810E848(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
sub_810F260(5, 0);
ClearWindowTilemap(5);
PutWindowTilemap(1);
sub_810DAB4(data[0], 1);
schedule_bg_copy_tilemap_to_vram(0);
sub_810DFB0(taskId);
}
}
void sub_810E8A0(u8 taskId)
{
s16 * data = gTasks[taskId].data;
sub_810F4D8(4, FALSE);
sub_810EAF0(0);
ClearWindowTilemap(4);
PutWindowTilemap(0);
PutWindowTilemap(1);
sub_810DAB4(data[0], 1);
schedule_bg_copy_tilemap_to_vram(0);
sub_810DFB0(taskId);
}
void sub_810E8F0(void)
{
u8 i;
InitWindows(gUnknown_8453F98);
DeactivateAllTextPrinters();
sub_815001C(0, 0x3C0, 0xE0);
sub_814FF2C(0, 0x3A3, 0xC0);
sub_814FEAC(0, 0x3AC, 0xB0);
LoadPalette(stdpal_get(2), 0xD0, 0x20);
LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20);
for (i = 0; i < 3; i++)
{
FillWindowPixelBuffer(i, 0x00);
PutWindowTilemap(i);
}
schedule_bg_copy_tilemap_to_vram(0);
for (i = 0; i < 3; i++)
gUnknown_203ADD8[i] = 0xFF;
}
void sub_810E984(u8 windowId, const u8 * string, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed)
{
struct TextPrinterTemplate template;
template.currentChar = string;
template.windowId = windowId;
template.fontId = 3;
template.x = x;
template.y = y;
template.currentX = x;
template.currentY = y;
template.fgColor = 2;
template.bgColor = 0;
template.shadowColor = 3;
template.unk = GetFontAttribute(3, FONTATTR_UNKNOWN);
template.letterSpacing = letterSpacing + GetFontAttribute(3, FONTATTR_LETTER_SPACING);
template.lineSpacing = lineSpacing + GetFontAttribute(3, FONTATTR_LINE_SPACING);
AddTextPrinter(&template, speed, NULL);
}
void sub_810EA34(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
{
AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, &gUnknown_8453F8C[colorIdx], speed, str);
}
void sub_810EA9C(u8 windowId)
{
SetWindowBorderStyle(windowId, FALSE, 0x3C0, 0x0E);
}
u8 sub_810EAB4(u8 idx)
{
if (gUnknown_203ADD8[idx] == 0xFF)
{
gUnknown_203ADD8[idx] = AddWindow(&gUnknown_8453FD0[idx]);
SetWindowBorderStyle(gUnknown_203ADD8[idx], TRUE, 0x3A3, 0x0C);
}
return gUnknown_203ADD8[idx];
}
void sub_810EAF0(u8 idx)
{
sub_810F4D8(gUnknown_203ADD8[idx], 0);
ClearWindowTilemap(gUnknown_203ADD8[idx]);
RemoveWindow(gUnknown_203ADD8[idx]);
gUnknown_203ADD8[idx] = 0xFF;
}
u8 sub_810EB20(u8 idx)
{
return gUnknown_203ADD8[idx];
}
void sub_810EB30(u8 taskId, const u8 * str, TaskFunc taskFunc)
{
DisplayMessageAndContinueTask(taskId, 5, 0x3AC, 0x0B, 2, GetTextSpeedSetting(), str, taskFunc);
schedule_bg_copy_tilemap_to_vram(0);
}
+1 -3
View File
@@ -1321,9 +1321,7 @@ gSpecialVar_ItemId: @ 203AD30
.align 2
.include "src/item_pc.o"
gUnknown_203ADD8: @ 203ADD8
.space 0x4
.align 2
gUnknown_203ADDC: @ 203ADDC
.space 0x4