From da57782ce57be43a78ac3a312d9dffcf4b55a70c Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 9 May 2021 21:22:39 +1000 Subject: [PATCH] Decompile func00025774 --- src/lib/lib_24e40.c | 79 +++++++++++---------------------------------- 1 file changed, 18 insertions(+), 61 deletions(-) diff --git a/src/lib/lib_24e40.c b/src/lib/lib_24e40.c index ff8df768b..c55756edb 100644 --- a/src/lib/lib_24e40.c +++ b/src/lib/lib_24e40.c @@ -640,67 +640,24 @@ f32 func00025724(f32 x1, f32 z1, f32 x2, f32 z2) return sqrtf(x2 * x2 + z2 * z2); } -GLOBAL_ASM( -glabel func00025774 -/* 25774: c7a40010 */ lwc1 $f4,0x10($sp) -/* 25778: c7a80014 */ lwc1 $f8,0x14($sp) -/* 2577c: afa60008 */ sw $a2,0x8($sp) -/* 25780: 460c2181 */ sub.s $f6,$f4,$f12 -/* 25784: c7a40008 */ lwc1 $f4,0x8($sp) -/* 25788: afa7000c */ sw $a3,0xc($sp) -/* 2578c: 460e4281 */ sub.s $f10,$f8,$f14 -/* 25790: c7a8000c */ lwc1 $f8,0xc($sp) -/* 25794: e7a60010 */ swc1 $f6,0x10($sp) -/* 25798: 460c2001 */ sub.s $f0,$f4,$f12 -/* 2579c: e7aa0014 */ swc1 $f10,0x14($sp) -/* 257a0: 00001025 */ or $v0,$zero,$zero -/* 257a4: 460e4081 */ sub.s $f2,$f8,$f14 -/* 257a8: 46000102 */ mul.s $f4,$f0,$f0 -/* 257ac: 00000000 */ nop -/* 257b0: 46021202 */ mul.s $f8,$f2,$f2 -/* 257b4: 46082480 */ add.s $f18,$f4,$f8 -/* 257b8: 46003102 */ mul.s $f4,$f6,$f0 -/* 257bc: 00000000 */ nop -/* 257c0: 46025202 */ mul.s $f8,$f10,$f2 -/* 257c4: 46082400 */ add.s $f16,$f4,$f8 -/* 257c8: 4610903c */ c.lt.s $f18,$f16 -/* 257cc: 00000000 */ nop -/* 257d0: 45000002 */ bc1f .L000257dc -/* 257d4: 00000000 */ nop -/* 257d8: 24020001 */ addiu $v0,$zero,0x1 -.L000257dc: -/* 257dc: 5040000b */ beqzl $v0,.L0002580c -/* 257e0: 44805000 */ mtc1 $zero,$f10 -/* 257e4: 44803000 */ mtc1 $zero,$f6 -/* 257e8: 00001025 */ or $v0,$zero,$zero -/* 257ec: 4606803c */ c.lt.s $f16,$f6 -/* 257f0: 00000000 */ nop -/* 257f4: 45000002 */ bc1f .L00025800 -/* 257f8: 00000000 */ nop -/* 257fc: 24020001 */ addiu $v0,$zero,0x1 -.L00025800: -/* 25800: 1440000f */ bnez $v0,.L00025840 -/* 25804: 00000000 */ nop -/* 25808: 44805000 */ mtc1 $zero,$f10 -.L0002580c: -/* 2580c: 00001025 */ or $v0,$zero,$zero -/* 25810: 4610503c */ c.lt.s $f10,$f16 -/* 25814: 00000000 */ nop -/* 25818: 45000002 */ bc1f .L00025824 -/* 2581c: 00000000 */ nop -/* 25820: 24020001 */ addiu $v0,$zero,0x1 -.L00025824: -/* 25824: 10400006 */ beqz $v0,.L00025840 -/* 25828: 00000000 */ nop -/* 2582c: 4612803c */ c.lt.s $f16,$f18 -/* 25830: 00001025 */ or $v0,$zero,$zero -/* 25834: 45000002 */ bc1f .L00025840 -/* 25838: 00000000 */ nop -/* 2583c: 24020001 */ addiu $v0,$zero,0x1 -.L00025840: -/* 25840: 03e00008 */ jr $ra -/* 25844: 00000000 */ nop -); +bool func00025774(f32 x1, f32 z1, f32 x2, f32 z2, f32 x3, f32 z3) +{ + f32 f0; + f32 f2; + f32 f16; + f32 f18; + + x3 -= x1; + z3 -= z1; + + f0 = x2 - x1; + f2 = z2 - z1; + + f16 = x3 * f0 + z3 * f2; + f18 = f0 * f0 + f2 * f2; + + return (f18 < f16 && f16 < 0) || (f16 > 0 && f16 < f18); +} GLOBAL_ASM( glabel func00025848