ov101_021F0EB0

This commit is contained in:
PikalaxALT 2025-04-23 20:42:50 -04:00
parent 407670a45e
commit cc300b1ba0
No known key found for this signature in database
GPG Key ID: 7774E96AA69E5B61
3 changed files with 51 additions and 83 deletions

View File

@ -25,88 +25,6 @@
.extern ov101_021F09B0
.extern ov101_021F0ACC
thumb_func_start ov101_021F0EB0
ov101_021F0EB0: ; 0x021F0EB0
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r0, #0xc4
ldr r0, [r0]
mov r3, #0
add r0, #0x84
ldr r2, [r0]
add r0, r6, #0
add r0, #0xcd
ldrb r0, [r0]
sub r4, r0, #1
cmp r4, #0
ble _021F0F10
add r2, r2, r1
_021F0ECC:
cmp r4, r3
ble _021F0F02
_021F0ED0:
add r0, r6, #0
add r0, #0xd0
ldr r7, [r0]
mov r0, #0x14
ldrb r5, [r7, r4]
ldrb r1, [r3, r7]
mul r0, r5
mov ip, r5
mov r5, #0x14
mul r5, r1
add r0, r2, r0
add r5, r2, r5
ldrb r0, [r0, #0x10]
ldrb r5, [r5, #0x10]
cmp r0, r5
bhs _021F0EFC
mov r0, ip
strb r0, [r3, r7]
add r0, r6, #0
add r0, #0xd0
ldr r0, [r0]
strb r1, [r0, r4]
_021F0EFC:
sub r4, r4, #1
cmp r4, r3
bgt _021F0ED0
_021F0F02:
add r0, r6, #0
add r0, #0xcd
ldrb r0, [r0]
add r3, r3, #1
sub r4, r0, #1
cmp r3, r4
blt _021F0ECC
_021F0F10:
add r0, r6, #0
bl ov101_021F1840
add r0, r6, #0
bl ov101_021F11B0
add r0, r6, #0
add r2, r6, #0
mov r1, #0
add r0, #0xe1
strb r1, [r0]
add r0, r6, #0
add r0, #0xe1
ldrb r1, [r0]
add r0, r6, #0
add r0, #0xe3
strb r1, [r0]
add r1, r6, #0
add r0, r6, #0
add r2, #0xe3
add r6, #0xe1
ldrb r2, [r2]
ldrb r3, [r6]
add r1, #0xe0
bl ov101_021F11E0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov101_021F0EB0
thumb_func_start ov101_021F0F48
ov101_021F0F48: ; 0x021F0F48
push {r3, r4, r5, r6, r7, lr}

View File

@ -72,7 +72,39 @@ typedef struct PokegearPhoneApp_Sub0C4Template {
} PokegearPhoneApp_Sub0C4Template;
typedef struct PokegearPhoneApp_Sub0C4 {
} PokegearPhoneApp_Sub0C4;
HeapID heapId;
PokegearPhoneAppData *unk_04;
BgConfig *unk_08;
Window *unk_0C;
Window *unk_10;
u8 filler_14[4];
PaletteData *unk_18;
SaveData *unk_1C;
MomsSavings *unk_20;
PlayerProfile *unk_24;
SaveVarsFlags *unk_28;
SysInfo_RTC *unk_2C;
u16 unk_30;
u16 unk_32;
u8 unk_34;
u8 unk_35;
u8 unk_36;
u8 filler_37[0xD];
MsgData *unk_44;
MsgData *unk_48;
u8 filler_4C[4];
MessageFormat *unk_50;
String *unk_54;
String *unk_58;
String *unk_5C;
String *unk_60;
String *unk_64;
String *unk_68[3];
String *unk_74[3];
PhoneBook *unk_80;
PhoneBookEntry *unk_84;
u8 filler_88[0x54];
} PokegearPhoneApp_Sub0C4; // size: 0xDC
struct PokegearPhoneAppData {
HeapID heapId; // 0x000

View File

@ -268,3 +268,21 @@ void ov101_021F0E0C(PokegearPhoneAppData *phoneApp, PokegearPhoneApp_Sub0D8 *a1,
} while (r4 != phoneApp->contactListHead);
}
}
void ov101_021F0EB0(PokegearPhoneAppData *phoneApp, u8 a1) {
PhoneBookEntry *r2 = phoneApp->unk_0C4->unk_84;
for (int i = 0; i < phoneApp->numContacts - 1; ++i) {
for (int j = phoneApp->numContacts - 1; j > i; --j) {
if (r2[phoneApp->saveContacts[j].id].unk10[a1] < r2[phoneApp->saveContacts[i].id].unk10[a1]) {
u8 tmp = phoneApp->saveContacts[i].id;
phoneApp->saveContacts[i].id = phoneApp->saveContacts[j].id;
phoneApp->saveContacts[j].id = tmp;
}
}
}
ov101_021F1840(phoneApp);
ov101_021F11B0(phoneApp);
phoneApp->unk_0E0.unk_001 = 0;
phoneApp->unk_0E0.unk_003 = phoneApp->unk_0E0.unk_001;
ov101_021F11E0(phoneApp, &phoneApp->unk_0E0, phoneApp->unk_0E0.unk_003, phoneApp->unk_0E0.unk_001);
}