Decompile func0f1776cc

This commit is contained in:
Ryan Dwyer 2021-01-14 18:34:50 +10:00
parent 299cf1932e
commit 9801a1d5ff
3 changed files with 17 additions and 46 deletions

View File

@ -428,50 +428,20 @@ glabel func0f17758c
/* f1776c8: 00000000 */ nop
);
GLOBAL_ASM(
glabel func0f1776cc
/* f1776cc: c4c40000 */ lwc1 $f4,0x0($a2)
/* f1776d0: c4860000 */ lwc1 $f6,0x0($a0)
/* f1776d4: c4c80004 */ lwc1 $f8,0x4($a2)
/* f1776d8: c48a0004 */ lwc1 $f10,0x4($a0)
/* f1776dc: 46062081 */ sub.s $f2,$f4,$f6
/* f1776e0: c4a60000 */ lwc1 $f6,0x0($a1)
/* f1776e4: c4840008 */ lwc1 $f4,0x8($a0)
/* f1776e8: 460a4301 */ sub.s $f12,$f8,$f10
/* f1776ec: c4d20008 */ lwc1 $f18,0x8($a2)
/* f1776f0: 46023202 */ mul.s $f8,$f6,$f2
/* f1776f4: c4aa0004 */ lwc1 $f10,0x4($a1)
/* f1776f8: 46049381 */ sub.s $f14,$f18,$f4
/* f1776fc: c4a60008 */ lwc1 $f6,0x8($a1)
/* f177700: 460a6482 */ mul.s $f18,$f12,$f10
/* f177704: 3c018008 */ lui $at,%hi(var800845d4)
/* f177708: c42045d4 */ lwc1 $f0,%lo(var800845d4)($at)
/* f17770c: 46067282 */ mul.s $f10,$f14,$f6
/* f177710: 46124100 */ add.s $f4,$f8,$f18
/* f177714: 460a2400 */ add.s $f16,$f4,$f10
/* f177718: 4600803c */ c.lt.s $f16,$f0
/* f17771c: 00000000 */ nop
/* f177720: 45000009 */ bc1f .L0f177748
/* f177724: 00000000 */ nop
/* f177728: 46000207 */ neg.s $f8,$f0
/* f17772c: 3c018008 */ lui $at,%hi(var800845d0)
/* f177730: 4610403c */ c.lt.s $f8,$f16
/* f177734: 00000000 */ nop
/* f177738: 45000003 */ bc1f .L0f177748
/* f17773c: 00000000 */ nop
/* f177740: 03e00008 */ jr $ra
/* f177744: c42045d0 */ lwc1 $f0,%lo(var800845d0)($at)
.L0f177748:
/* f177748: 46021482 */ mul.s $f18,$f2,$f2
/* f17774c: 00000000 */ nop
/* f177750: 460c6182 */ mul.s $f6,$f12,$f12
/* f177754: 46069100 */ add.s $f4,$f18,$f6
/* f177758: 460e7282 */ mul.s $f10,$f14,$f14
/* f17775c: 460a2200 */ add.s $f8,$f4,$f10
/* f177760: 46104003 */ div.s $f0,$f8,$f16
/* f177764: 03e00008 */ jr $ra
/* f177768: 00000000 */ nop
);
f32 func0f1776cc(struct coord *a, struct coord *b, struct coord *c)
{
f32 xdiff = c->x - a->x;
f32 ydiff = c->y - a->y;
f32 zdiff = c->z - a->z;
f32 sqdist = xdiff * b->x + ydiff * b->y + zdiff * b->z;
if (sqdist < var800845d4 && sqdist > -var800845d4) {
return var800845d0;
}
return (xdiff * xdiff + ydiff * ydiff + zdiff * zdiff) / sqdist;
}
bool func0f17776c(struct coord *a, struct coord *b, f32 mult, struct coord *out)
{
@ -489,7 +459,7 @@ bool func0f17776c(struct coord *a, struct coord *b, f32 mult, struct coord *out)
bool func0f1777b8(struct coord *a, struct coord *b, struct coord *c, struct coord *out)
{
f32 mult = func0f1776cc(a, b, c, out);
f32 mult = func0f1776cc(a, b, c);
func0f17776c(a, b, mult, out);
return true;

View File

@ -25,6 +25,7 @@ extern u32 var800844d0;
extern u32 var800844f0;
extern u32 var800844f4;
extern struct stagemusic g_StageTracks[];
extern f32 var800845d0;
extern f32 var800845d4;
extern s32 var800845d8;
extern u32 var800845dc;

View File

@ -12,7 +12,7 @@ void func0f1770ac(struct coord *a, struct coord *b, struct coord *out);
bool func0f177164(struct coord *arg0, struct coord *arg1, u32 line, char *file);
bool func0f1773c8(struct coord *a, struct coord *b);
f32 coordsGetDistance(struct coord *a, struct coord *b);
f32 func0f1776cc(struct coord *a, struct coord *b, struct coord *c, struct coord *out);
f32 func0f1776cc(struct coord *a, struct coord *b, struct coord *c);
bool func0f17776c(struct coord *a, struct coord *b, f32 mult, struct coord *out);
void func0f1777f8(void);
u32 func0f177a54(void);