From ced4d1d3e69b822dbeadaea8c2aeb57f94e535ff Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sat, 7 Oct 2023 03:58:07 -0300 Subject: [PATCH] func_80005320 --- src/main/5A20.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/5A20.c b/src/main/5A20.c index 5d42f5cd..71d2ba07 100644 --- a/src/main/5A20.c +++ b/src/main/5A20.c @@ -1,5 +1,7 @@ #include "common.h" +extern f32 D_800C80FC; +extern f32 D_800C8100; extern s32 D_8013B3A0; extern s32 D_8013B3A4; extern s32 D_8013B3A8; @@ -8,6 +10,7 @@ extern s32 D_8013B3B0; extern s32 D_8013B3B4; extern void func_80005680(s32, s32); +extern f32 func_8001FBE8(f32); extern u64 func_80023000(void); f32 func_80004E20(f32 arg0, f32 arg1) { @@ -34,7 +37,23 @@ void func_80004FC8(s32 arg0, s32 arg1, s32 arg2) { #pragma GLOBAL_ASM("asm/us/nonmatchings/main/5A20/func_800051F8.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/5A20/func_80005320.s") +f32 func_80005320(f32 arg0, f32 arg1) { + if ((arg0 == 0.0f) && (arg1 == 0.0f)) { + return 0.0f; + } + + if (arg0 == 0.0f) { + if (arg1 < 0.0f) { + return D_800C80FC; + } + return D_800C8100; + } + + if (arg1 == 0.0f) { + return 0.0f; + } + return -func_8001FBE8(arg0 / arg1); +} #pragma GLOBAL_ASM("asm/us/nonmatchings/main/5A20/func_800053C8.s") @@ -81,6 +100,7 @@ void func_80005604(s32* arg0, s32* arg1, s32 arg2, s32 arg3, s32 arg4) { *arg0 = arg4; } +// https://decomp.me/scratch/8H8k4 100% #pragma GLOBAL_ASM("asm/us/nonmatchings/main/5A20/func_80005680.s") void func_80005708(s32* arg0) {