From ac3561538bcf609235a73a3dd7c10a15c8eb9083 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 7 Sep 2020 18:51:18 +1000 Subject: [PATCH] Decompile func0f177300 --- src/game/data/data_02a0e0.c | 2 +- src/game/utils.c | 73 ++++++++--------------------- src/include/constants.h | 2 +- src/include/game/data/data_02a0e0.h | 1 + 4 files changed, 22 insertions(+), 56 deletions(-) diff --git a/src/game/data/data_02a0e0.c b/src/game/data/data_02a0e0.c index 4477e457d..601932172 100644 --- a/src/game/data/data_02a0e0.c +++ b/src/game/data/data_02a0e0.c @@ -416,7 +416,7 @@ struct stagemusic g_StageTracks[] = { u32 var800845c8 = 0x00000000; u32 var800845cc = 0x00000000; u32 var800845d0 = 0x497423f0; -u32 var800845d4 = 0x3727c5ac; +f32 var800845d4 = 0.00001f; s32 var800845d8 = 1; u32 var800845dc = 0x00000000; u32 var800845e0 = 0x00000000; diff --git a/src/game/utils.c b/src/game/utils.c index c4214af02..37b2748af 100644 --- a/src/game/utils.c +++ b/src/game/utils.c @@ -299,62 +299,27 @@ glabel func0f177164 .L0f1772f8: /* f1772f8: 03e00008 */ jr $ra /* f1772fc: 00000000 */ nop -/* f177300: c4840000 */ lwc1 $f4,0x0($a0) -/* f177304: c4a60000 */ lwc1 $f6,0x0($a1) -/* f177308: 44807000 */ mtc1 $zero,$f14 -/* f17730c: 3c018008 */ lui $at,%hi(var800845d4) -/* f177310: 46062001 */ sub.s $f0,$f4,$f6 -/* f177314: 00001025 */ or $v0,$zero,$zero -/* f177318: 4600703c */ c.lt.s $f14,$f0 -/* f17731c: 00000000 */ nop -/* f177320: 45020004 */ bc1fl .L0f177334 -/* f177324: 46000087 */ neg.s $f2,$f0 -/* f177328: 10000002 */ b .L0f177334 -/* f17732c: 46000086 */ mov.s $f2,$f0 -/* f177330: 46000087 */ neg.s $f2,$f0 -.L0f177334: -/* f177334: c42c45d4 */ lwc1 $f12,%lo(var800845d4)($at) -/* f177338: 460c103c */ c.lt.s $f2,$f12 -/* f17733c: 00000000 */ nop -/* f177340: 4500001f */ bc1f .L0f1773c0 -/* f177344: 00000000 */ nop -/* f177348: c4880004 */ lwc1 $f8,0x4($a0) -/* f17734c: c4aa0004 */ lwc1 $f10,0x4($a1) -/* f177350: 460a4001 */ sub.s $f0,$f8,$f10 -/* f177354: 4600703c */ c.lt.s $f14,$f0 -/* f177358: 00000000 */ nop -/* f17735c: 45020004 */ bc1fl .L0f177370 -/* f177360: 46000087 */ neg.s $f2,$f0 -/* f177364: 10000002 */ b .L0f177370 -/* f177368: 46000086 */ mov.s $f2,$f0 -/* f17736c: 46000087 */ neg.s $f2,$f0 -.L0f177370: -/* f177370: 460c103c */ c.lt.s $f2,$f12 -/* f177374: 00000000 */ nop -/* f177378: 45000011 */ bc1f .L0f1773c0 -/* f17737c: 00000000 */ nop -/* f177380: c4900008 */ lwc1 $f16,0x8($a0) -/* f177384: c4b20008 */ lwc1 $f18,0x8($a1) -/* f177388: 46128001 */ sub.s $f0,$f16,$f18 -/* f17738c: 4600703c */ c.lt.s $f14,$f0 -/* f177390: 00000000 */ nop -/* f177394: 45020004 */ bc1fl .L0f1773a8 -/* f177398: 46000087 */ neg.s $f2,$f0 -/* f17739c: 10000002 */ b .L0f1773a8 -/* f1773a0: 46000086 */ mov.s $f2,$f0 -/* f1773a4: 46000087 */ neg.s $f2,$f0 -.L0f1773a8: -/* f1773a8: 460c103c */ c.lt.s $f2,$f12 -/* f1773ac: 00000000 */ nop -/* f1773b0: 45000003 */ bc1f .L0f1773c0 -/* f1773b4: 00000000 */ nop -/* f1773b8: 03e00008 */ jr $ra -/* f1773bc: 24020001 */ addiu $v0,$zero,0x1 -.L0f1773c0: -/* f1773c0: 03e00008 */ jr $ra -/* f1773c4: 00000000 */ nop ); +bool func0f177300(struct coord *a, struct coord *b) +{ + f32 diff = a->x - b->x; + + if (ABS(diff) < var800845d4) { + diff = a->y - b->y; + + if (ABS(diff) < var800845d4) { + diff = a->z - b->z; + + if (ABS(diff) < var800845d4) { + return true; + } + } + } + + return false; +} + GLOBAL_ASM( glabel func0f1773c8 /* f1773c8: c4800000 */ lwc1 $f0,0x0($a0) diff --git a/src/include/constants.h b/src/include/constants.h index a8beceb47..316c3b214 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -11,7 +11,7 @@ #define S32_MAX 2147483647 #define U32_MAX 4294967295 -#define ABS(val) (val > 0 ? val : -val) +#define ABS(val) ((val) > 0 ? (val) : -(val)) #define ALIGN8(val) (((val) + 0x7 | 0x7) ^ 0x7) #define ALIGN16(val) (((val) + 0xf | 0xf) ^ 0xf) #define ALIGN64(val) (((val) + 0x3f | 0x3f) ^ 0x3f) diff --git a/src/include/game/data/data_02a0e0.h b/src/include/game/data/data_02a0e0.h index f10f9dc4a..72e97189e 100644 --- a/src/include/game/data/data_02a0e0.h +++ b/src/include/game/data/data_02a0e0.h @@ -25,6 +25,7 @@ extern u32 var800844d0; extern u32 var800844f0; extern u32 var800844f4; extern struct stagemusic g_StageTracks[]; +extern f32 var800845d4; extern s32 var800845d8; extern u32 var800845dc; extern u32 var800845f4;