PokedexApp_MainSeq_80

This commit is contained in:
PikalaxALT 2026-01-24 08:57:51 -05:00
parent 8b377b79b7
commit da9a7a3fb7
No known key found for this signature in database
GPG Key ID: 7774E96AA69E5B61
3 changed files with 111 additions and 264 deletions

View File

@ -8,7 +8,6 @@
.extern ov18_021E590C
.extern ov18_021E595C
.extern ov18_021E59A8
.extern ov18_021E5E70
.extern ov18_021E613C
.extern ov18_021E66EC
.extern ov18_021E6714
@ -31,269 +30,6 @@
.text
thumb_func_start PokedexApp_MainSeq_80
PokedexApp_MainSeq_80: ; 0x021ECF58
push {r4, lr}
sub sp, #0x18
add r1, sp, #0x14
add r4, r0, #0
bl ov18_021F7D30
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _021ECF70
cmp r0, #0xc
bls _021ECF72
_021ECF70:
b _021ED144
_021ECF72:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_021ECF7E: ; jump table
.short _021ECF98 - _021ECF7E - 2 ; case 0
.short _021ECFBA - _021ECF7E - 2 ; case 1
.short _021ECFDC - _021ECF7E - 2 ; case 2
.short _021ECFFE - _021ECF7E - 2 ; case 3
.short _021ED014 - _021ECF7E - 2 ; case 4
.short _021ED042 - _021ECF7E - 2 ; case 5
.short _021ED06E - _021ECF7E - 2 ; case 6
.short _021ED09C - _021ECF7E - 2 ; case 7
.short _021ED042 - _021ECF7E - 2 ; case 8
.short _021ED09C - _021ECF7E - 2 ; case 9
.short _021ED0CA - _021ECF7E - 2 ; case 10
.short _021ED0F8 - _021ECF7E - 2 ; case 11
.short _021ED122 - _021ECF7E - 2 ; case 12
_021ECF98:
ldr r0, [sp, #0x14]
cmp r0, #1
bne _021ECFA6
ldr r0, _021ED14C ; =0x000008E9
bl PlaySE
b _021ECFAC
_021ECFA6:
ldr r0, _021ED150 ; =0x000008E8
bl PlaySE
_021ECFAC:
add r0, r4, #0
mov r1, #0
mov r2, #1
bl ov18_021EC1DC
add sp, #0x18
pop {r4, pc}
_021ECFBA:
ldr r0, [sp, #0x14]
cmp r0, #1
bne _021ECFC8
ldr r0, _021ED14C ; =0x000008E9
bl PlaySE
b _021ECFCE
_021ECFC8:
ldr r0, _021ED150 ; =0x000008E8
bl PlaySE
_021ECFCE:
add r0, r4, #0
mov r1, #0
mov r2, #2
bl ov18_021EC1DC
add sp, #0x18
pop {r4, pc}
_021ECFDC:
ldr r0, [sp, #0x14]
cmp r0, #1
bne _021ECFEA
ldr r0, _021ED14C ; =0x000008E9
bl PlaySE
b _021ECFF0
_021ECFEA:
ldr r0, _021ED150 ; =0x000008E8
bl PlaySE
_021ECFF0:
add r0, r4, #0
mov r1, #0x10
mov r2, #0x50
bl ov18_021EDC28
add sp, #0x18
pop {r4, pc}
_021ECFFE:
mov r0, #0x25
lsl r0, r0, #6
bl PlaySE
add r0, r4, #0
mov r1, #0
mov r2, #0xff
bl ov18_021EC1DC
add sp, #0x18
pop {r4, pc}
_021ED014:
add r0, r4, #0
sub r1, r1, #1
mov r2, #2
bl ov18_021EDF14
cmp r0, #1
bne _021ED03C
ldr r0, [sp, #0x14]
cmp r0, #1
bne _021ED030
ldr r0, _021ED14C ; =0x000008E9
bl PlaySE
b _021ED036
_021ED030:
ldr r0, _021ED150 ; =0x000008E8
bl PlaySE
_021ED036:
add sp, #0x18
mov r0, #0x52
pop {r4, pc}
_021ED03C:
add sp, #0x18
mov r0, #0x50
pop {r4, pc}
_021ED042:
add r0, r4, #0
mov r2, #1
bl ov18_021EDF14
cmp r0, #1
bne _021ED068
ldr r0, [sp, #0x14]
cmp r0, #1
bne _021ED05C
ldr r0, _021ED14C ; =0x000008E9
bl PlaySE
b _021ED062
_021ED05C:
ldr r0, _021ED150 ; =0x000008E8
bl PlaySE
_021ED062:
add sp, #0x18
mov r0, #0x52
pop {r4, pc}
_021ED068:
add sp, #0x18
mov r0, #0x50
pop {r4, pc}
_021ED06E:
mov r1, #2
add r0, r4, #0
add r2, r1, #0
bl ov18_021EDF14
cmp r0, #1
bne _021ED096
ldr r0, [sp, #0x14]
cmp r0, #1
bne _021ED08A
ldr r0, _021ED14C ; =0x000008E9
bl PlaySE
b _021ED090
_021ED08A:
ldr r0, _021ED150 ; =0x000008E8
bl PlaySE
_021ED090:
add sp, #0x18
mov r0, #0x53
pop {r4, pc}
_021ED096:
add sp, #0x18
mov r0, #0x50
pop {r4, pc}
_021ED09C:
mov r1, #1
add r0, r4, #0
add r2, r1, #0
bl ov18_021EDF14
cmp r0, #1
bne _021ED0C4
ldr r0, [sp, #0x14]
cmp r0, #1
bne _021ED0B8
ldr r0, _021ED14C ; =0x000008E9
bl PlaySE
b _021ED0BE
_021ED0B8:
ldr r0, _021ED150 ; =0x000008E8
bl PlaySE
_021ED0BE:
add sp, #0x18
mov r0, #0x53
pop {r4, pc}
_021ED0C4:
add sp, #0x18
mov r0, #0x50
pop {r4, pc}
_021ED0CA:
add r0, sp, #0x10
add r1, sp, #0xc
bl System_GetTouchHeldCoords
ldr r1, [sp, #0x10]
ldr r2, [sp, #0xc]
add r0, r4, #0
bl ov18_021F6258
cmp r0, #1
bne _021ED0E6
add sp, #0x18
mov r0, #0x54
pop {r4, pc}
_021ED0E6:
ldr r0, _021ED154 ; =0x00000868
add r1, r4, r0
ldr r0, [sp, #0x10]
strh r0, [r1]
ldr r0, [sp, #0xc]
add sp, #0x18
strh r0, [r1, #2]
mov r0, #0x55
pop {r4, pc}
_021ED0F8:
ldr r0, _021ED158 ; =0x000018C4
ldrsb r0, [r4, r0]
cmp r0, #1
beq _021ED144
ldr r0, _021ED14C ; =0x000008E9
bl PlaySE
mov r0, #0xf
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0x56
mov r2, #0x11
str r0, [sp, #8]
add r0, r4, #0
mov r1, #0
add r3, r2, #0
bl ov18_021EDC50
add sp, #0x18
pop {r4, pc}
_021ED122:
ldr r0, [sp, #0x14]
cmp r0, #1
bne _021ED130
ldr r0, _021ED14C ; =0x000008E9
bl PlaySE
b _021ED136
_021ED130:
ldr r0, _021ED150 ; =0x000008E8
bl PlaySE
_021ED136:
add r0, r4, #0
mov r1, #0
mov r2, #4
bl ov18_021EC1DC
add sp, #0x18
pop {r4, pc}
_021ED144:
mov r0, #0x50
add sp, #0x18
pop {r4, pc}
nop
_021ED14C: .word 0x000008E9
_021ED150: .word 0x000008E8
_021ED154: .word 0x00000868
_021ED158: .word 0x000018C4
thumb_func_end PokedexApp_MainSeq_80
thumb_func_start PokedexApp_MainSeq_81
PokedexApp_MainSeq_81: ; 0x021ED15C
push {r4, r5, lr}

View File

@ -388,6 +388,7 @@ int ov18_021EDBB8(PokedexAppData *pokedexApp, int a1, int a2, int a3);
int ov18_021EDBDC(PokedexAppData *pokedexApp, int a1, int a2, int a3);
int ov18_021EDC00(PokedexAppData *pokedexApp, int a1, int a2, int a3, int a4, int a5);
int ov18_021EDC28(PokedexAppData *pokedexApp, int a1, int a2);
int ov18_021EDC50(PokedexAppData *pokedexApp, int a1, int a2, int a3, int a4, int a5, int a6);
void ov18_021EDC74(PokedexAppData *pokedexApp, int a1);
void ov18_021EDCD4(PokedexAppData *pokedexApp);
void ov18_021EDDA4(PokedexAppData *pokedexApp, int a1);
@ -396,6 +397,7 @@ int ov18_021EDE04(PokedexAppData *pokedexApp);
void ov18_021EDE4C(PokedexAppData *pokedexApp, int a1, int a2, int a3);
void ov18_021EDE64(PokedexAppData *pokedexApp);
void ov18_021EDEB0(PokedexAppData *pokedexApp);
int ov18_021EDF14(PokedexAppData *pokedexApp, int a1, int a2);
void ov18_021EE068(PokedexAppData *pokedexApp);
void ov18_021EE0CC(PokedexAppData *pokedexApp);
int ov18_021EE0F0(PokedexAppData *pokedexApp, int a1, int a2);
@ -520,6 +522,7 @@ void ov18_021F4A50(PokedexAppData *pokedexApp);
void ov18_021F5DC0(PokedexAppData *pokedexApp);
void ov18_021F5DE0(PokedexAppData *pokedexApp);
void ov18_021F619C(PokedexAppData *pokedexApp, s8 a1, s8 a2, int a3);
int ov18_021F6258(PokedexAppData *pokedexApp, int a1, int a2);
int ov18_021F62B4(PokedexAppData *pokedexApp, u32 x, u32 y);
BOOL ov18_021F63DC(PokedexAppData *pokedexApp, u32 x, u32 y);
int ov18_021F64F4(PokedexAppData *pokedexApp, int a1);
@ -549,6 +552,7 @@ u32 ov18_021F7974(PokedexAppData *pokedexApp, int a1);
void ov18_021F7B74(PokedexAppData *pokedexApp);
u32 ov18_021F7C14(PokedexAppData *pokedexApp, u32 *a1);
u32 ov18_021F7D00(PokedexAppData *pokedexApp, u32 *a1);
u32 ov18_021F7D30(PokedexAppData *pokedexApp, u32 *a1);
void ov18_021F7ED4(PokedexAppData *pokedexApp, u8 a1, u32 a2, u32 a3, u32 a4, u32 a5, u32 a6, u32 a7, u32 a8, u32 a9, u32 a10, u32 a11);
u32 ov18_021F8824(PokedexAppData *pokedexApp);
u16 ov18_021F8838(PokedexAppData *pokedexApp);

View File

@ -2871,3 +2871,110 @@ int PokedexApp_MainSeq_79(PokedexAppData *pokedexApp) {
return POKEDEXAPP_MAINSEQ_79;
}
int PokedexApp_MainSeq_80(PokedexAppData *pokedexApp) {
u32 sp14;
switch (ov18_021F7D30(pokedexApp, &sp14)) {
case 0:
if (sp14 == 1) {
PlaySE(SEQ_SE_GS_ZKN04);
} else {
PlaySE(SEQ_SE_GS_ZKN03);
}
return ov18_021EC1DC(pokedexApp, 0, 1);
case 1:
if (sp14 == 1) {
PlaySE(SEQ_SE_GS_ZKN04);
} else {
PlaySE(SEQ_SE_GS_ZKN03);
}
return ov18_021EC1DC(pokedexApp, 0, 2);
case 2:
if (sp14 == 1) {
PlaySE(SEQ_SE_GS_ZKN04);
} else {
PlaySE(SEQ_SE_GS_ZKN03);
}
return ov18_021EDC28(pokedexApp, 16, 80);
case 3:
PlaySE(SEQ_SE_GS_GEARCANCEL);
return ov18_021EC1DC(pokedexApp, 0, 255);
case 4:
if (ov18_021EDF14(pokedexApp, -2, 2) == 1) {
if (sp14 == 1) {
PlaySE(SEQ_SE_GS_ZKN04);
} else {
PlaySE(SEQ_SE_GS_ZKN03);
}
return POKEDEXAPP_MAINSEQ_82;
} else {
return POKEDEXAPP_MAINSEQ_80;
}
case 5:
case 8:
if (ov18_021EDF14(pokedexApp, -1, 1) == 1) {
if (sp14 == 1) {
PlaySE(SEQ_SE_GS_ZKN04);
} else {
PlaySE(SEQ_SE_GS_ZKN03);
}
return POKEDEXAPP_MAINSEQ_82;
} else {
return POKEDEXAPP_MAINSEQ_80;
}
case 6:
if (ov18_021EDF14(pokedexApp, 2, 2) == 1) {
if (sp14 == 1) {
PlaySE(SEQ_SE_GS_ZKN04);
} else {
PlaySE(SEQ_SE_GS_ZKN03);
}
return POKEDEXAPP_MAINSEQ_83;
} else {
return POKEDEXAPP_MAINSEQ_80;
}
case 7:
case 9:
if (ov18_021EDF14(pokedexApp, 1, 1) == 1) {
if (sp14 == 1) {
PlaySE(SEQ_SE_GS_ZKN04);
} else {
PlaySE(SEQ_SE_GS_ZKN03);
}
return POKEDEXAPP_MAINSEQ_83;
} else {
return POKEDEXAPP_MAINSEQ_80;
}
case 10: {
u32 x, y;
System_GetTouchHeldCoords(&x, &y);
if (ov18_021F6258(pokedexApp, x, y) == 1) {
return POKEDEXAPP_MAINSEQ_84;
} else {
PokedexAppData_UnkSub0868_State16 *r1 = &pokedexApp->unk_0868.state_16;
r1->unk_0 = x;
r1->unk_2 = y;
return POKEDEXAPP_MAINSEQ_85;
}
} break;
case 11:
if (pokedexApp->numSeenForms != 1) {
PlaySE(SEQ_SE_GS_ZKN04);
return ov18_021EDC50(pokedexApp, 0, 17, 17, 15, 2, POKEDEXAPP_MAINSEQ_86);
}
break;
case 12:
if (sp14 == 1) {
PlaySE(SEQ_SE_GS_ZKN04);
} else {
PlaySE(SEQ_SE_GS_ZKN03);
}
return ov18_021EC1DC(pokedexApp, 0, 4);
case -1:
break;
}
return POKEDEXAPP_MAINSEQ_80;
}