diff --git a/asm/include/main_0205E3F8.inc b/asm/include/main_0205E448.inc similarity index 99% rename from asm/include/main_0205E3F8.inc rename to asm/include/main_0205E448.inc index 9e1bb18f..3a050544 100644 --- a/asm/include/main_0205E3F8.inc +++ b/asm/include/main_0205E448.inc @@ -347,4 +347,5 @@ .public sub_0205E090 .public sub_0205E258 .public sub_0205E2B8 +.public sub_0205E3F8 .public vsprintf diff --git a/asm/main_0205E3F8.s b/asm/main_0205E448.s similarity index 99% rename from asm/main_0205E3F8.s rename to asm/main_0205E448.s index 31dc885a..1f943bdf 100644 --- a/asm/main_0205E3F8.s +++ b/asm/main_0205E448.s @@ -1,35 +1,8 @@ .include "asm/macros.inc" - .include "main_0205E3F8.inc" + .include "main_0205E448.inc" .text - arm_func_start sub_0205E3F8 -sub_0205E3F8: ; 0x0205E3F8 - stmdb sp!, {r3, lr} - mov lr, r0 - mov ip, #0 - b _0205E438 -_0205E408: - ldrb r0, [r2, ip, lsl #5] - mov r3, ip, lsl #5 - cmp r0, #0 - bne _0205E434 - add ip, r2, r3 - ldmia lr!, {r0, r1, r2, r3} - stmia ip!, {r0, r1, r2, r3} - ldmia lr, {r0, r1, r2, r3} - stmia ip, {r0, r1, r2, r3} - mov r0, #0 - ldmia sp!, {r3, pc} -_0205E434: - add ip, ip, #1 -_0205E438: - cmp ip, r1 - blt _0205E408 - mov r0, #1 - ldmia sp!, {r3, pc} - arm_func_end sub_0205E3F8 - arm_func_start sub_0205E448 sub_0205E448: ; 0x0205E448 stmdb sp!, {r4, lr} diff --git a/include/main_0205E288.h b/include/main_0205E288.h index 84e2b9a6..975d7834 100644 --- a/include/main_0205E288.h +++ b/include/main_0205E288.h @@ -3,7 +3,12 @@ #include "mission.h" +struct unkStruct_0205E3F8 { + u32 data[8]; +}; + bool8 sub_0205E288(struct mission *mission, u32 val, u8 *ptr2); bool8 sub_0205E2B8(u32 arg0, u8 *arg1); +bool8 sub_0205E3F8(struct unkStruct_0205E3F8 *src, s32 limit, struct unkStruct_0205E3F8 *destArray); #endif //PMDSKY_MAIN_0205E288_H diff --git a/main.lsf b/main.lsf index a0410585..9e1f4dbf 100644 --- a/main.lsf +++ b/main.lsf @@ -168,7 +168,7 @@ Static main Object src/main_0205E01C.o Object asm/main_0205E090.o Object src/main_0205E288.o - Object asm/main_0205E3F8.o + Object asm/main_0205E448.o Object src/dungeon_init_2.o Object asm/main_0206A750.o Object src/main_0206C98C.o diff --git a/src/main_0205E288.c b/src/main_0205E288.c index bf9eb11e..443ef886 100644 --- a/src/main_0205E288.c +++ b/src/main_0205E288.c @@ -47,3 +47,17 @@ bool8 sub_0205E2B8(u32 arg0, u8 *arg1) return FALSE; } + +bool8 sub_0205E3F8(struct unkStruct_0205E3F8 *src, s32 limit, struct unkStruct_0205E3F8 *destArray) +{ + for (s32 i = 0; i < limit; i++) + { + if (*(u8 *)&destArray[i] == 0) + { + destArray[i] = *src; + return FALSE; + } + } + + return TRUE; +}