diff --git a/src/game/game_097aa0.c b/src/game/game_097aa0.c index e88600261..c9dc6e807 100644 --- a/src/game/game_097aa0.c +++ b/src/game/game_097aa0.c @@ -6,38 +6,27 @@ #include "data.h" #include "types.h" -GLOBAL_ASM( -glabel func0f097aa0 -/* f097aa0: 3c013f80 */ lui $at,0x3f80 -/* f097aa4: 44819000 */ mtc1 $at,$f18 -/* f097aa8: 27bdffe0 */ addiu $sp,$sp,-32 -/* f097aac: f7b80018 */ sdc1 $f24,0x18($sp) -/* f097ab0: 46126101 */ sub.s $f4,$f12,$f18 -/* f097ab4: f7b60010 */ sdc1 $f22,0x10($sp) -/* f097ab8: 3c014000 */ lui $at,0x4000 -/* f097abc: 46126180 */ add.s $f6,$f12,$f18 -/* f097ac0: 44808000 */ mtc1 $zero,$f16 -/* f097ac4: 4481b000 */ mtc1 $at,$f22 -/* f097ac8: 4480c000 */ mtc1 $zero,$f24 -/* f097acc: 46062003 */ div.s $f0,$f4,$f6 -/* f097ad0: f7b40008 */ sdc1 $f20,0x8($sp) -/* f097ad4: 46000382 */ mul.s $f14,$f0,$f0 -/* f097ad8: 46000086 */ mov.s $f2,$f0 -/* f097adc: 46120503 */ div.s $f20,$f0,$f18 -.L0f097ae0: -/* f097ae0: 460e1082 */ mul.s $f2,$f2,$f14 -/* f097ae4: 46169480 */ add.s $f18,$f18,$f22 -/* f097ae8: 4618a032 */ c.eq.s $f20,$f24 -/* f097aec: 46148400 */ add.s $f16,$f16,$f20 -/* f097af0: 4502fffb */ bc1fl .L0f097ae0 -/* f097af4: 46120503 */ div.s $f20,$f0,$f18 -/* f097af8: d7b40008 */ ldc1 $f20,0x8($sp) -/* f097afc: d7b60010 */ ldc1 $f22,0x10($sp) -/* f097b00: d7b80018 */ ldc1 $f24,0x18($sp) -/* f097b04: 27bd0020 */ addiu $sp,$sp,0x20 -/* f097b08: 03e00008 */ jr $ra -/* f097b0c: 46108000 */ add.s $f0,$f16,$f16 -); +f32 func0f097aa0(f32 arg0) +{ + f32 f16; + f32 f20; + f32 f18; + f32 f0 = (arg0 - 1) / (arg0 + 1); + f32 f2 = f0; + f32 f14 = f0 * f0; + + f16 = 0; + f18 = 1; + + do { + f2 *= f14; + f20 = f0 / f18; + f16 += f20; + f18 += 2; + } while (f20 != 0.0f); + + return f16 + f16; +} f32 func0f097b10(f32 arg0, f32 arg1) {