Decomped sub_0205E2B8

Decomped by @slaw-22
This commit is contained in:
AnonymousRandomPerson 2026-03-19 21:46:30 -04:00
parent 2437590882
commit fddb06d6ac
5 changed files with 46 additions and 109 deletions

View File

@ -346,5 +346,5 @@
.public sub_0205E01C
.public sub_0205E090
.public sub_0205E258
.public sub_0205E288
.public sub_0205E2B8
.public vsprintf

View File

@ -1,103 +1,8 @@
.include "asm/macros.inc"
.include "main_0205E2B8.inc"
.include "main_0205E3F8.inc"
.text
arm_func_start sub_0205E2B8
sub_0205E2B8: ; 0x0205E2B8
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r5, r0
mov r4, r1
mov r7, #0
ldr r6, _0205E3F4 ; =MISSION_DELIVER_LIST_PTR
b _0205E2F4
_0205E2D0:
ldr r0, [r6, #0x18]
mov r1, r5
mov r2, r4
add r0, r0, r7, lsl #5
bl sub_0205E288
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
add r7, r7, #1
_0205E2F4:
cmp r7, #8
blt _0205E2D0
mov r7, #0
ldr r6, _0205E3F4 ; =MISSION_DELIVER_LIST_PTR
b _0205E330
_0205E308:
ldr r0, [r6, #0x18]
mov r1, r5
add r0, r0, #0x100
mov r2, r4
add r0, r0, r7, lsl #5
bl sub_0205E288
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
add r7, r7, #1
_0205E330:
cmp r7, #8
blt _0205E308
mov r7, #0
ldr r6, _0205E3F4 ; =MISSION_DELIVER_LIST_PTR
b _0205E36C
_0205E344:
ldr r0, [r6, #0x18]
mov r1, r5
add r0, r0, #0x200
mov r2, r4
add r0, r0, r7, lsl #5
bl sub_0205E288
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
add r7, r7, #1
_0205E36C:
cmp r7, #8
blt _0205E344
mov r7, #0
ldr r6, _0205E3F4 ; =MISSION_DELIVER_LIST_PTR
b _0205E3A8
_0205E380:
ldr r0, [r6, #0x18]
mov r1, r5
add r0, r0, #0x300
mov r2, r4
add r0, r0, r7, lsl #5
bl sub_0205E288
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
add r7, r7, #1
_0205E3A8:
cmp r7, #1
blt _0205E380
mov r7, #0
ldr r6, _0205E3F4 ; =MISSION_DELIVER_LIST_PTR
b _0205E3E4
_0205E3BC:
ldr r0, [r6, #0x18]
mov r1, r5
add r0, r0, #0x320
mov r2, r4
add r0, r0, r7, lsl #5
bl sub_0205E288
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
add r7, r7, #1
_0205E3E4:
cmp r7, #1
blt _0205E3BC
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0205E3F4: .word MISSION_DELIVER_LIST_PTR
arm_func_end sub_0205E2B8
arm_func_start sub_0205E3F8
sub_0205E3F8: ; 0x0205E3F8
stmdb sp!, {r3, lr}

View File

@ -1,14 +1,9 @@
#ifndef PMDSKY_MAIN_0205E288_H
#define PMDSKY_MAIN_0205E288_H
#include "util.h"
#include "mission.h"
struct unkStruct_0205E288 {
u8 unk0;
u8 unk1;
u8 unk2;
};
bool8 sub_0205E288(struct unkStruct_0205E288 *ptr, u32 val, struct unkStruct_0205E288 *ptr2);
bool8 sub_0205E288(struct mission *mission, u32 val, u8 *ptr2);
bool8 sub_0205E2B8(u32 arg0, u8 *arg1);
#endif //PMDSKY_MAIN_0205E288_H

View File

@ -168,7 +168,7 @@ Static main
Object src/main_0205E01C.o
Object asm/main_0205E090.o
Object src/main_0205E288.o
Object asm/main_0205E2B8.o
Object asm/main_0205E3F8.o
Object src/dungeon_init_2.o
Object asm/main_0206A750.o
Object src/main_0206C98C.o

View File

@ -1,12 +1,49 @@
#include "main_0205E288.h"
bool8 sub_0205E288(struct unkStruct_0205E288 *ptr, u32 val, struct unkStruct_0205E288 *ptr2)
extern struct mission_deliver_list MISSION_DELIVER_LIST_PTR;
bool8 sub_0205E288(struct mission *mission, u32 val, u8 *ptr2)
{
if (ptr->unk0 == 0)
if (mission->status == MISSION_STATUS_INVALID)
return FALSE;
if (ptr->unk1 == val && ptr->unk2 == ptr2->unk0)
if (mission->type == val && mission->subtype.other == *ptr2)
return TRUE;
return FALSE;
}
bool8 sub_0205E2B8(u32 arg0, u8 *arg1)
{
for (s32 i = 0; i < 8; i++)
{
if (sub_0205E288((struct mission*) (MISSION_DELIVER_LIST_PTR.unk18 + i * 32), arg0, arg1))
return TRUE;
}
for (s32 i = 0; i < 8; i++)
{
if (sub_0205E288((struct mission*) (MISSION_DELIVER_LIST_PTR.unk18 + 0x100 + i * 32), arg0, arg1))
return TRUE;
}
for (s32 i = 0; i < 8; i++)
{
if (sub_0205E288((struct mission*) (MISSION_DELIVER_LIST_PTR.unk18 + 0x200 + i * 32), arg0, arg1))
return TRUE;
}
for (s32 i = 0; i < 1; i++)
{
if (sub_0205E288((struct mission*) (MISSION_DELIVER_LIST_PTR.unk18 + 0x300 + i * 32), arg0, arg1))
return TRUE;
}
for (s32 i = 0; i < 1; i++)
{
if (sub_0205E288((struct mission*) (MISSION_DELIVER_LIST_PTR.unk18 + 0x320 + i * 32), arg0, arg1))
return TRUE;
}
return FALSE;
}