mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-06-27 01:35:07 -04:00
58 lines
1.7 KiB
C
58 lines
1.7 KiB
C
#include <ultra64.h>
|
|
#include "constants.h"
|
|
#include "game/game_097a50.h"
|
|
#include "game/game_097aa0.h"
|
|
#include "bss.h"
|
|
#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 func0f097b10(f32 arg0, f32 arg1)
|
|
{
|
|
return func0f097a50(func0f097aa0(arg0) * arg1);
|
|
}
|
|
|
|
void func0f097b40(f32 *a, f32 *b, f32 *dst)
|
|
{
|
|
dst[0] = b[0] * a[0];
|
|
dst[1] = b[1] * a[1];
|
|
}
|
|
|
|
void func0f097b64(f32 *a, f32 *b, f32 scale, f32 *dst)
|
|
{
|
|
dst[0] = (b[0] - a[0]) * scale + a[0];
|
|
dst[1] = (b[1] - a[1]) * scale + a[1];
|
|
}
|