through ov18_021EDDA4

This commit is contained in:
PikalaxALT 2026-01-26 18:34:42 -05:00
parent f96bf0fccf
commit e6800d7da7
No known key found for this signature in database
GPG Key ID: 7774E96AA69E5B61
5 changed files with 58 additions and 164 deletions

View File

@ -24,151 +24,6 @@
.text
thumb_func_start ov18_021EDC74
ov18_021EDC74: ; 0x021EDC74
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
add r4, r1, #0
bl ov18_021F8838
ldr r2, _021EDCD0 ; =0x00001858
add r1, r0, #0
ldr r0, [r5]
ldrb r2, [r5, r2]
ldr r0, [r0, #8]
bl sub_02092BD8
ldr r0, _021EDCD0 ; =0x00001858
strb r4, [r5, r0]
add r0, r5, #0
bl ov18_021E6A70
add r0, r5, #0
mov r1, #0
bl ov18_021F2AC0
mov r0, #0x11
str r0, [sp]
str r0, [sp, #4]
mov r2, #0
str r2, [sp, #8]
mov r0, #0x98
str r0, [sp, #0xc]
str r2, [sp, #0x10]
str r0, [sp, #0x14]
mov r0, #8
str r0, [sp, #0x18]
mov r0, #0xe
str r0, [sp, #0x1c]
ldr r1, _021EDCD0 ; =0x00001858
add r0, r5, #0
ldrb r1, [r5, r1]
mov r3, #0x1a
bl ov18_021F7ED4
add r0, r5, #0
bl ov18_021EE5FC
add sp, #0x20
pop {r3, r4, r5, pc}
.balign 4, 0
_021EDCD0: .word 0x00001858
thumb_func_end ov18_021EDC74
thumb_func_start ov18_021EDCD4
ov18_021EDCD4: ; 0x021EDCD4
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
bl ov18_021EDDB4
add r0, r5, #0
mov r1, #1
bl ov18_021F8884
add r0, r5, #0
bl ov18_021F8838
add r4, r0, #0
add r0, r5, #0
bl ov18_021F8824
ldr r2, _021EDD9C ; =0x0000185C
add r6, r0, #0
ldrb r2, [r5, r2]
add r0, r5, #0
add r1, r4, #0
bl ov18_021E6D10
cmp r0, #0
bne _021EDD0C
ldr r0, _021EDD9C ; =0x0000185C
mov r1, #2
strb r1, [r5, r0]
_021EDD0C:
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl ov18_021EE6BC
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl ov18_021EE8B8
add r0, r5, #0
mov r1, #0x18
bl ov18_021F1620
add r0, r5, #0
add r1, r4, #0
mov r2, #0xb
mov r3, #0xa
bl ov18_021F1CAC
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
mov r3, #0xe
bl ov18_021F209C
add r0, r5, #0
add r1, r4, #0
mov r2, #0x12
bl ov18_021F2530
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
mov r3, #0xd
bl ov18_021F1DE4
add r0, r5, #0
mov r1, #5
bl ov18_021F2BB0
add r0, r5, #0
mov r1, #2
mov r2, #1
bl ov18_021F2C10
mov r1, #1
add r0, r5, #0
add r2, r1, #0
bl ov18_021F2C5C
mov r1, #1
add r0, r5, #0
add r2, r1, #0
bl ov18_021F2E80
mov r0, #0x25
str r0, [sp]
ldr r2, _021EDD9C ; =0x0000185C
ldr r3, _021EDDA0 ; =0x00000854
ldrb r2, [r5, r2]
ldr r0, [r5, #4]
ldr r3, [r5, r3]
mov r1, #7
bl ov18_021E6F6C
add r0, r5, #0
bl ov18_021E6C98
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
_021EDD9C: .word 0x0000185C
_021EDDA0: .word 0x00000854
thumb_func_end ov18_021EDCD4
thumb_func_start ov18_021EDDA4
ov18_021EDDA4: ; 0x021EDDA4
push {r4, lr}
add r4, r0, #0
bl ov18_021EDC74
add r0, r4, #0
bl ov18_021EDCD4
pop {r4, pc}
thumb_func_end ov18_021EDDA4
thumb_func_start ov18_021EDDB4
ov18_021EDDB4: ; 0x021EDDB4
push {r3, r4, r5, lr}

View File

@ -273,7 +273,7 @@ struct PokedexAppData {
void *weights; // 0x184C
PokedexAppData_UnkSub1850 *unk_1850; // 0x1850
u8 *unk_1854; // 0x1854
u8 unk_1858; // 0x1858
u8 sortOrder; // 0x1858
u8 unk_1859; // 0x1859
u8 unk_185A; // 0x185A
u8 unk_185B; // 0x185B
@ -388,6 +388,7 @@ BOOL PokedexApp_RunMainSeq(PokedexAppData *pokedexApp, int *pState);
void ov18_021EE388(PokedexAppData *pokedexApp);
void ov18_021EE3FC(PokedexAppData *pokedexApp);
void ov18_021EE5FC(PokedexAppData *pokedexApp);
void ov18_021EE638(PokedexAppData *pokedexApp, u32 species, int a2);
void ov18_021EE6BC(PokedexAppData *pokedexApp, int species, int a2);
void ov18_021EE6EC(PokedexAppData *pokedexApp, int species, int a2);
@ -451,6 +452,7 @@ void ov18_021F2530(PokedexAppData *pokedexApp, u32 species, int a2);
void ov18_021F2880(PokedexAppData *pokedexApp);
void ov18_021F2A2C(PokedexAppData *pokedexApp, int a1, int a2);
void ov18_021F2A84(PokedexAppData *pokedexApp, int a1, int a2);
void ov18_021F2AC0(PokedexAppData *pokedexApp, int a1);
BOOL ov18_021F2AF8(PokedexAppData *pokedexApp, u32 x, u32 y);
void ov18_021F2B3C(PokedexAppData *pokedexApp, int a1, s16 a2);
void ov18_021F2B70(PokedexAppData *pokedexApp, int a1, s16 a2);

View File

@ -21,16 +21,16 @@ BOOL Pokedex_Init(OverlayManager *man, int *state) {
MI_CpuClear8(appData, sizeof(PokedexAppData));
appData->args = OverlayManager_GetArgs(man);
appData->unk_085C = 5;
appData->unk_1858 = sub_02092BE0(appData->args->unk_08);
appData->sortOrder = sub_02092BE0(appData->args->unk_08);
if (Pokedex_GetNatDexFlag(appData->args->pokedex)) {
appData->unk_1860 = TRUE;
if (appData->unk_1858 == 2) {
appData->unk_1858 = 1;
if (appData->sortOrder == 2) {
appData->sortOrder = 1;
}
} else {
appData->unk_1860 = FALSE;
if (appData->unk_1858 == 2) {
appData->unk_1858 = 0;
if (appData->sortOrder == 2) {
appData->sortOrder = 0;
}
}
if (Pokedex_CheckMonCaughtFlag(appData->args->pokedex, SPECIES_GIRATINA) == TRUE) {
@ -61,7 +61,7 @@ BOOL Pokedex_Exit(OverlayManager *man, int *state) {
if (ov123_0225F520(ov18_021E5C1C)) {
Heap_AllocAtEnd(HEAP_ID_3, 1000);
}
sub_02092BD8(appData->args->unk_08, ov18_021F8838(appData), appData->unk_1858);
sub_02092BD8(appData->args->unk_08, ov18_021F8838(appData), appData->sortOrder);
// DSProt_DetectFlashcart
if (ov123_0225F430(ov18_021E5C2C)) {
Heap_AllocAtEnd(HEAP_ID_3, 1000);

View File

@ -1034,7 +1034,7 @@ static void ov18_021E6868(PokedexAppData *pokedexApp) {
}
void ov18_021E6A70(PokedexAppData *pokedexApp) {
if (pokedexApp->unk_1858 == 0) {
if (pokedexApp->sortOrder == 0) {
sub_020196E8(pokedexApp->unk_0008, 2, 5, 3);
} else {
sub_020196E8(pokedexApp->unk_0008, 3, 5, 3);
@ -1087,7 +1087,7 @@ u16 *ov18_021E6BB8(PokedexAppData *pokedexApp, u32 a1) {
if (pokedexApp->unk_1030[sp4].unk_0 == SPECIES_NONE) {
continue;
}
u32 r1 = Pokedex_ConvertToCurrentDexNo(pokedexApp->unk_1858, pokedexApp->unk_1030[sp4].unk_0);
u32 r1 = Pokedex_ConvertToCurrentDexNo(pokedexApp->sortOrder, pokedexApp->unk_1030[sp4].unk_0);
if (pokedexApp->unk_1030[sp4].unk_2 == 2) {
ret[160 * i + 36 + 5 * j] = 0x1002;
PokedexApp_3DigitNumToTiles(&ret[160 * i + 37 + 5 * j], r1, 3);
@ -1468,7 +1468,7 @@ void ov18_021E7724(PokedexAppData *pokedexApp) {
}
}
if (pokedexApp->unk_1858 == 0) {
if (pokedexApp->sortOrder == 0) {
r5 = sub_02019B08(pokedexApp->unk_0008, 2);
sub_02019B44(pokedexApp->unk_0008, 2, &sp1A, &sp18);
for (i = 0; i < sp18; ++i) {

View File

@ -267,7 +267,7 @@ int PokedexApp_MainSeq_00(PokedexAppData *pokedexApp) {
FontID_Alloc(4, HEAP_ID_37);
pokedexApp->gfxNarc = NARC_New(NARC_graphic_zukan_gra, HEAP_ID_37);
ov18_021E6FFC(pokedexApp);
ov18_021F7ED4(pokedexApp, pokedexApp->unk_1858, 0, 26, 17, 17, 0, 152, 0, 152, 8, 14);
ov18_021F7ED4(pokedexApp, pokedexApp->sortOrder, 0, dex_search_letters_all, dex_search_type_all, dex_search_type_all, 0, 152, 0, 152, 1 << dex_search_area_all, dex_search_bodytype_all);
ov18_021F8884(pokedexApp, 1);
ov18_021EDDB4(pokedexApp);
ov18_021E5C74();
@ -417,7 +417,7 @@ int PokedexApp_MainSeq_07(PokedexAppData *pokedexApp) {
sp0 = 135;
}
if (!ov18_021F2AF8(pokedexApp, sp4, sp0)) {
if (pokedexApp->unk_1858 == 1) {
if (pokedexApp->sortOrder == 1) {
PlaySE(SEQ_SE_GS_ZKN_BUTTON8);
ov18_021EDC74(pokedexApp, 0);
} else {
@ -989,7 +989,7 @@ int PokedexApp_MainSeq_23(PokedexAppData *pokedexApp) {
r5->unk_0 = 1;
break;
case 1:
ov18_021F7ED4(pokedexApp, pokedexApp->unk_1858, pokedexApp->dexSearchCriteria[dex_search_criteria_sort_order], pokedexApp->dexSearchCriteria[dex_search_criteria_letter], pokedexApp->dexSearchCriteria[dex_search_criteria_type1], pokedexApp->dexSearchCriteria[dex_search_criteria_type2], pokedexApp->dexSearchCriteria[dex_search_criteria_height_min], pokedexApp->dexSearchCriteria[dex_search_criteria_height_max], pokedexApp->dexSearchCriteria[dex_search_criteria_weight_min], pokedexApp->dexSearchCriteria[dex_search_criteria_weight_max], 1 << pokedexApp->dexSearchCriteria[dex_search_criteria_area], pokedexApp->dexSearchCriteria[dex_search_criteria_body_type]);
ov18_021F7ED4(pokedexApp, pokedexApp->sortOrder, pokedexApp->dexSearchCriteria[dex_search_criteria_sort_order], pokedexApp->dexSearchCriteria[dex_search_criteria_letter], pokedexApp->dexSearchCriteria[dex_search_criteria_type1], pokedexApp->dexSearchCriteria[dex_search_criteria_type2], pokedexApp->dexSearchCriteria[dex_search_criteria_height_min], pokedexApp->dexSearchCriteria[dex_search_criteria_height_max], pokedexApp->dexSearchCriteria[dex_search_criteria_weight_min], pokedexApp->dexSearchCriteria[dex_search_criteria_weight_max], 1 << pokedexApp->dexSearchCriteria[dex_search_criteria_area], pokedexApp->dexSearchCriteria[dex_search_criteria_body_type]);
if (pokedexApp->unk_102E == 0 && pokedexApp->unk_102C == 0) {
r5->unk_0 = 15;
} else {
@ -1166,7 +1166,7 @@ int PokedexApp_MainSeq_25(PokedexAppData *pokedexApp) {
int PokedexApp_MainSeq_19(PokedexAppData *pokedexApp) {
switch (pokedexApp->unk_0868.state_10.unk_0) {
case 0:
ov18_021F7ED4(pokedexApp, pokedexApp->unk_1858, 0, 26, 17, 17, 0, 152, 0, 152, 8, 14);
ov18_021F7ED4(pokedexApp, pokedexApp->sortOrder, 0, dex_search_letters_all, dex_search_type_all, dex_search_type_all, 0, 152, 0, 152, 1 << dex_search_area_all, dex_search_bodytype_all);
ov18_021F8884(pokedexApp, 1);
++pokedexApp->unk_0868.state_10.unk_0;
break;
@ -2135,9 +2135,9 @@ PokedexApp_MainSeq_62(PokedexAppData *pokedexApp) {
case 0: {
u16 r1 = ov18_021F8838(pokedexApp);
if (r1 != 0) {
sub_02092BD8(pokedexApp->args->unk_08, r1, pokedexApp->unk_1858);
sub_02092BD8(pokedexApp->args->unk_08, r1, pokedexApp->sortOrder);
}
ov18_021F7ED4(pokedexApp, pokedexApp->unk_1858, dex_order_national, dex_search_letters_all, dex_search_type_all, dex_search_type_all, 0, 152, 0, 152, 1 << dex_search_area_all, dex_search_bodytype_all);
ov18_021F7ED4(pokedexApp, pokedexApp->sortOrder, dex_order_national, dex_search_letters_all, dex_search_type_all, dex_search_type_all, 0, 152, 0, 152, 1 << dex_search_area_all, dex_search_bodytype_all);
ov18_021F8884(pokedexApp, 1);
ov18_021EDDB4(pokedexApp);
ov18_021EDE64(pokedexApp);
@ -2172,9 +2172,9 @@ int PokedexApp_MainSeq_63(PokedexAppData *pokedexApp) {
case 0: {
u16 species = ov18_021F8838(pokedexApp);
if (species != SPECIES_NONE) {
sub_02092BD8(pokedexApp->args->unk_08, species, pokedexApp->unk_1858);
sub_02092BD8(pokedexApp->args->unk_08, species, pokedexApp->sortOrder);
}
ov18_021F7ED4(pokedexApp, pokedexApp->unk_1858, dex_order_national, dex_search_letters_all, dex_search_type_all, dex_search_type_all, 0, 152, 0, 152, 1 << dex_search_area_all, dex_search_bodytype_all);
ov18_021F7ED4(pokedexApp, pokedexApp->sortOrder, dex_order_national, dex_search_letters_all, dex_search_type_all, dex_search_type_all, 0, 152, 0, 152, 1 << dex_search_area_all, dex_search_bodytype_all);
ov18_021F8884(pokedexApp, 1);
ov18_021EDDB4(pokedexApp);
GfGfxLoader_LoadCharDataFromOpenNarc(pokedexApp->gfxNarc, NARC_zukan_gra_zukan_gra_00000001_NCGR_lz, pokedexApp->bgConfig, GF_BG_LYR_MAIN_0, 0, 0, TRUE, HEAP_ID_37);
@ -2221,7 +2221,7 @@ int PokedexApp_MainSeq_64(PokedexAppData *pokedexApp) {
case 0: {
u16 r1 = ov18_021F8838(pokedexApp);
if (r1 != SPECIES_NONE) {
sub_02092BD8(pokedexApp->args->unk_08, r1, pokedexApp->unk_1858);
sub_02092BD8(pokedexApp->args->unk_08, r1, pokedexApp->sortOrder);
}
sub_0201980C(pokedexApp->unk_0008, 4);
ov18_021F2A2C(pokedexApp, 22, 0);
@ -3423,3 +3423,40 @@ int ov18_021EDC28(PokedexAppData *pokedexApp, u8 a1, int a2) {
int ov18_021EDC50(PokedexAppData *pokedexApp, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, int a6) {
return ov18_021EDB68(pokedexApp, a1, a2, a3, a4, a5, 10, 11, a6);
}
void ov18_021EDC74(PokedexAppData *pokedexApp, int a1) {
sub_02092BD8(pokedexApp->args->unk_08, ov18_021F8838(pokedexApp), pokedexApp->sortOrder);
pokedexApp->sortOrder = a1;
ov18_021E6A70(pokedexApp);
ov18_021F2AC0(pokedexApp, 0);
ov18_021F7ED4(pokedexApp, pokedexApp->sortOrder, 0, dex_search_letters_all, dex_search_type_all, dex_search_type_all, 0, 152, 0, 152, 1 << dex_search_area_all, dex_search_bodytype_all);
ov18_021EE5FC(pokedexApp);
}
void ov18_021EDCD4(PokedexAppData *pokedexApp) {
ov18_021EDDB4(pokedexApp);
ov18_021F8884(pokedexApp, 1);
u16 species = ov18_021F8838(pokedexApp);
u32 r6 = ov18_021F8824(pokedexApp);
if (!ov18_021E6D10(pokedexApp, species, pokedexApp->unk_185C)) {
pokedexApp->unk_185C = GAME_LANGUAGE;
}
ov18_021EE6BC(pokedexApp, species, r6);
ov18_021EE8B8(pokedexApp, species, r6);
ov18_021F1620(pokedexApp, 24);
ov18_021F1CAC(pokedexApp, species, 11, 10);
ov18_021F209C(pokedexApp, species, r6, 14);
ov18_021F2530(pokedexApp, species, 18);
ov18_021F1DE4(pokedexApp, species, r6, 13);
ov18_021F2BB0(pokedexApp, 5);
ov18_021F2C10(pokedexApp, 2, 1);
ov18_021F2C5C(pokedexApp, 1, 1);
ov18_021F2E80(pokedexApp, 1, 1);
ov18_021E6F6C(pokedexApp->bgConfig, GF_BG_LYR_SUB_3, pokedexApp->unk_185C, pokedexApp->gfxNarc, HEAP_ID_37);
ov18_021E6C98(pokedexApp);
}
void ov18_021EDDA4(PokedexAppData *pokedexApp, int a1) {
ov18_021EDC74(pokedexApp, a1);
ov18_021EDCD4(pokedexApp);
}