mirror of
https://github.com/pret/pokeheartgold.git
synced 2026-05-09 04:02:46 -05:00
through ov18_021EDDA4
This commit is contained in:
parent
f96bf0fccf
commit
e6800d7da7
145
asm/overlay_18.s
145
asm/overlay_18.s
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user