From 07b1d52c391214125f9b8d2582988f22fd239d5e Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 9 May 2021 14:22:21 +1000 Subject: [PATCH] Decompile cdTestAToB4 --- src/include/lib/lib_17ce0.h | 2 +- src/include/lib/lib_24e40.h | 4 ++-- src/lib/lib_24e40.c | 43 +++++++------------------------------ 3 files changed, 11 insertions(+), 38 deletions(-) diff --git a/src/include/lib/lib_17ce0.h b/src/include/lib/lib_17ce0.h index 56b09139e..0325c485a 100644 --- a/src/include/lib/lib_17ce0.h +++ b/src/include/lib/lib_17ce0.h @@ -7,6 +7,6 @@ u32 func00017ce0(void); u32 func00017dc4(void); bool func00017e30(s32 portalnum, struct coord *arg1, struct coord *arg2); -u32 func00018148(void); +void func00018148(struct coord *pos, struct coord *pos2, s16 *rooms, u32 *arg3, u32 *arg4, s32 arg5); #endif diff --git a/src/include/lib/lib_24e40.h b/src/include/lib/lib_24e40.h index b73d1e3e2..577cf94ba 100644 --- a/src/include/lib/lib_24e40.h +++ b/src/include/lib/lib_24e40.h @@ -82,7 +82,7 @@ u32 func0002c328(void); u32 func0002c528(void); u32 func0002c714(void); s32 func0002d15c(struct coord *pos, struct coord *coord2, s16 *rooms, u32 types, s32 arg4, s32 arg5, s32 arg6, f32 arg7, f32 arg8); -s32 func0002d3b0(struct coord *arg0, struct coord *arg1, void *arg2, s32 types, s32 arg4, s32 arg5, s32 arg6, f32 ymax, f32 ymin); +s32 func0002d3b0(struct coord *arg0, struct coord *arg1, void *arg2, s32 types, u16 arg4, s32 arg5, s32 arg6, f32 ymax, f32 ymin); bool func0002d6ac(struct coord *pos, s16 *rooms, struct coord *targetpos, u32 arg3, u32 arg4, f32 arg5, f32 arg6); s32 cdTestAToB2(struct coord *pos, s16 *rooms, struct coord *coord2, s16 *rooms2, u32 types, s32 arg5, f32 arg6, f32 arg7); bool func0002d7c0(struct coord *pos, s16 *rooms, struct coord *arg2, u32 arg3, u32 arg4, f32 arg5, f32 arg6); @@ -96,7 +96,7 @@ bool func0002dc18(struct coord *coord, s16 *rooms, struct coord *coord2, s32 arg bool hasLineOfSight(struct coord *coord, s16 *room, struct coord *coord2, s16 *room2, s32 arg4, s32 arg5); bool func0002dcd0(struct coord *arg0, s16 *rooms1, struct coord *arg2, s16 *rooms2, u32 arg4); bool func0002dcfc(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2, s16 *rooms3, u32 arg5, u32 arg6); -s32 cdTestAToB4(struct coord *pos, s16 *rooms, struct coord *pos2, u32 types, u32 arg4); +s32 cdTestAToB4(struct coord *pos, s16 *rooms, struct coord *pos2, u32 types, u16 arg4); s32 func0002de10(struct coord *pos, s16 *rooms, struct coord *pos2, u32 types); u32 func0002de34(void); u32 func0002deac(void); diff --git a/src/lib/lib_24e40.c b/src/lib/lib_24e40.c index ad82df697..02614e88d 100644 --- a/src/lib/lib_24e40.c +++ b/src/lib/lib_24e40.c @@ -10040,41 +10040,14 @@ glabel func0002dcfc /* 2dd8c: 00000000 */ nop ); -GLOBAL_ASM( -glabel cdTestAToB4 -/* 2dd90: 27bdff90 */ addiu $sp,$sp,-112 -/* 2dd94: afa60078 */ sw $a2,0x78($sp) -/* 2dd98: 00a03025 */ or $a2,$a1,$zero -/* 2dd9c: afbf002c */ sw $ra,0x2c($sp) -/* 2dda0: afa50074 */ sw $a1,0x74($sp) -/* 2dda4: afa7007c */ sw $a3,0x7c($sp) -/* 2dda8: 27ae0044 */ addiu $t6,$sp,0x44 -/* 2ddac: 240f0014 */ addiu $t7,$zero,0x14 -/* 2ddb0: afa40070 */ sw $a0,0x70($sp) -/* 2ddb4: afaf0014 */ sw $t7,0x14($sp) -/* 2ddb8: afae0010 */ sw $t6,0x10($sp) -/* 2ddbc: 27a70034 */ addiu $a3,$sp,0x34 -/* 2ddc0: 0c006052 */ jal func00018148 -/* 2ddc4: 8fa50078 */ lw $a1,0x78($sp) -/* 2ddc8: 44800000 */ mtc1 $zero,$f0 -/* 2ddcc: 97b80082 */ lhu $t8,0x82($sp) -/* 2ddd0: 24190001 */ addiu $t9,$zero,0x1 -/* 2ddd4: 24080001 */ addiu $t0,$zero,0x1 -/* 2ddd8: afa80018 */ sw $t0,0x18($sp) -/* 2dddc: afb90014 */ sw $t9,0x14($sp) -/* 2dde0: 8fa40070 */ lw $a0,0x70($sp) -/* 2dde4: 8fa50078 */ lw $a1,0x78($sp) -/* 2dde8: 27a60044 */ addiu $a2,$sp,0x44 -/* 2ddec: 8fa7007c */ lw $a3,0x7c($sp) -/* 2ddf0: afb80010 */ sw $t8,0x10($sp) -/* 2ddf4: e7a0001c */ swc1 $f0,0x1c($sp) -/* 2ddf8: 0c00b4ec */ jal func0002d3b0 -/* 2ddfc: e7a00020 */ swc1 $f0,0x20($sp) -/* 2de00: 8fbf002c */ lw $ra,0x2c($sp) -/* 2de04: 27bd0070 */ addiu $sp,$sp,0x70 -/* 2de08: 03e00008 */ jr $ra -/* 2de0c: 00000000 */ nop -); +s32 cdTestAToB4(struct coord *pos, s16 *rooms, struct coord *pos2, u32 types, u16 arg4) +{ + u32 sp44[11]; + u32 sp34[4]; + + func00018148(pos, pos2, rooms, sp34, sp44, 0x14); + func0002d3b0(pos, pos2, sp44, types, arg4, 1, 1, 0, 0); +} s32 func0002de10(struct coord *pos, s16 *rooms, struct coord *pos2, u32 types) {