From 9e6d4a01b991ac61137b9f2b13d3506699e8dcee Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 8 Nov 2019 17:32:03 +1000 Subject: [PATCH] Decompile chrGetSquaredDistanceToCoord --- src/game/game_000000.c | 31 ++++++++++--------------------- src/game/game_0601b0.c | 8 ++++---- 2 files changed, 14 insertions(+), 25 deletions(-) diff --git a/src/game/game_000000.c b/src/game/game_000000.c index 5f0f8e539..cf3ba8197 100644 --- a/src/game/game_000000.c +++ b/src/game/game_000000.c @@ -77975,7 +77975,7 @@ glabel func0f043da8 .L0f043e5c: /* f043e5c: 10800019 */ beqz $a0,.L0f043ec4 /* f043e60: 24650008 */ addiu $a1,$v1,0x8 -/* f043e64: 0fc12555 */ jal func0f049554 +/* f043e64: 0fc12555 */ jal chrGetSquaredDistanceToCoord /* f043e68: 02402025 */ or $a0,$s2,$zero /* f043e6c: 4614003c */ c.lt.s $f0,$f20 /* f043e70: 00000000 */ sll $zero,$zero,0x0 @@ -83983,25 +83983,14 @@ float chrGetLateralDistanceToPad(struct chrdata *chr, s32 pad_id) return distance; } -GLOBAL_ASM( -glabel func0f049554 -/* f049554: 8c82001c */ lw $v0,0x1c($a0) -/* f049558: c4a40000 */ lwc1 $f4,0x0($a1) -/* f04955c: c4a80004 */ lwc1 $f8,0x4($a1) -/* f049560: c4460008 */ lwc1 $f6,0x8($v0) -/* f049564: c44a000c */ lwc1 $f10,0xc($v0) -/* f049568: c4b00008 */ lwc1 $f16,0x8($a1) -/* f04956c: 46062081 */ sub.s $f2,$f4,$f6 -/* f049570: c4520010 */ lwc1 $f18,0x10($v0) -/* f049574: 460a4301 */ sub.s $f12,$f8,$f10 -/* f049578: 46021102 */ mul.s $f4,$f2,$f2 -/* f04957c: 46128381 */ sub.s $f14,$f16,$f18 -/* f049580: 460c6182 */ mul.s $f6,$f12,$f12 -/* f049584: 46062200 */ add.s $f8,$f4,$f6 -/* f049588: 460e7282 */ mul.s $f10,$f14,$f14 -/* f04958c: 03e00008 */ jr $ra -/* f049590: 460a4000 */ add.s $f0,$f8,$f10 -); +float chrGetSquaredDistanceToCoord(struct chrdata *chr, struct coord *coord) +{ + float xdiff = coord->x - chr->pos->coord.x; + float ydiff = coord->y - chr->pos->coord.y; + float zdiff = coord->z - chr->pos->coord.z; + + return xdiff * xdiff + ydiff * ydiff + zdiff * zdiff; +} GLOBAL_ASM( glabel func0f049594 @@ -86663,7 +86652,7 @@ glabel func0f04ba34 /* f04bcd0: 11c00006 */ beqz $t6,.L0f04bcec /* f04bcd4: 322f0008 */ andi $t7,$s1,0x8 /* f04bcd8: 02802025 */ or $a0,$s4,$zero -/* f04bcdc: 0fc12555 */ jal func0f049554 +/* f04bcdc: 0fc12555 */ jal chrGetSquaredDistanceToCoord /* f04bce0: 8fa50098 */ lw $a1,0x98($sp) /* f04bce4: 10000021 */ beqz $zero,.L0f04bd6c /* f04bce8: 46000306 */ mov.s $f12,$f0 diff --git a/src/game/game_0601b0.c b/src/game/game_0601b0.c index cc3f8c03d..697e26a32 100644 --- a/src/game/game_0601b0.c +++ b/src/game/game_0601b0.c @@ -347680,7 +347680,7 @@ glabel func0f1937a4 /* f193920: 33284000 */ andi $t0,$t9,0x4000 /* f193924: 15000045 */ bnez $t0,.L0f193a3c /* f193928: 00000000 */ sll $zero,$zero,0x0 -/* f19392c: 0fc12555 */ jal func0f049554 +/* f19392c: 0fc12555 */ jal chrGetSquaredDistanceToCoord /* f193930: 00001025 */ or $v0,$zero,$zero /* f193934: 46000506 */ mov.s $f20,$f0 /* f193938: 0000b025 */ or $s6,$zero,$zero @@ -347772,7 +347772,7 @@ glabel func0f1937a4 /* f193a70: 1481004d */ bne $a0,$at,.L0f193ba8 /* f193a74: 26a50008 */ addiu $a1,$s5,0x8 /* f193a78: 03c02025 */ or $a0,$s8,$zero -/* f193a7c: 0fc12555 */ jal func0f049554 +/* f193a7c: 0fc12555 */ jal chrGetSquaredDistanceToCoord /* f193a80: afa000d8 */ sw $zero,0xd8($sp) /* f193a84: 46000506 */ mov.s $f20,$f0 /* f193a88: 24140001 */ addiu $s4,$zero,0x1 @@ -347868,7 +347868,7 @@ glabel func0f1937a4 /* f193bc8: 26730004 */ addiu $s3,$s3,0x4 /* f193bcc: 15e1001a */ bne $t7,$at,.L0f193c38 /* f193bd0: 03c02025 */ or $a0,$s8,$zero -/* f193bd4: 0fc12555 */ jal func0f049554 +/* f193bd4: 0fc12555 */ jal chrGetSquaredDistanceToCoord /* f193bd8: 26a50008 */ addiu $a1,$s5,0x8 /* f193bdc: 0c004b70 */ jal random /* f193be0: 46000506 */ mov.s $f20,$f0 @@ -349914,7 +349914,7 @@ glabel func0f194b40 /* f195828: afa60294 */ sw $a2,0x294($sp) /* f19582c: afa30288 */ sw $v1,0x288($sp) /* f195830: 02802025 */ or $a0,$s4,$zero -/* f195834: 0fc12555 */ jal func0f049554 +/* f195834: 0fc12555 */ jal chrGetSquaredDistanceToCoord /* f195838: 24a50008 */ addiu $a1,$a1,0x8 /* f19583c: 3c017f1c */ lui $at,0x7f1c /* f195840: c4248f54 */ lwc1 $f4,-0x70ac($at)