Files
perfect_dark/src/game/game_096360.c
T
2021-12-01 17:39:28 +10:00

57 lines
1.4 KiB
C

#include <ultra64.h>
#include "constants.h"
#include "game/game_095320.h"
#include "game/game_096360.h"
#include "game/game_0b3350.h"
#include "game/training/training.h"
#include "game/propobj.h"
#include "bss.h"
#include "lib/rng.h"
#include "lib/mtx.h"
#include "data.h"
#include "types.h"
void func0f096360(Mtxf *mtx)
{
struct coord coord = {0, 0, 0};
coord.x = random() * (1.0f / U32_MAX) * PALUPF(M_BADTAU) * 0.0078125f - PALUPF(0.024539785459638f);
coord.y = random() * (1.0f / U32_MAX) * PALUPF(M_BADTAU) * 0.0078125f - PALUPF(0.024539785459638f);
coord.z = random() * (1.0f / U32_MAX) * PALUPF(M_BADTAU) * 0.0078125f - PALUPF(0.024539785459638f);
mtx4LoadRotation(&coord, mtx);
}
void func0f0964b4(struct coord *coord, Mtxf *mtx)
{
coord->x = random() * (1.0f / U32_MAX) * 1.6666666269302f * 4.0f - 3.3333332538605f;
coord->y = random() * (1.0f / U32_MAX) * 1.6666666269302f * 4.0f;
coord->z = random() * (1.0f / U32_MAX) * 1.6666666269302f * 4.0f - 3.3333332538605f;
func0f096360(mtx);
}
void func0f0965e4(f32 *arg0, f32 *arg1, f32 arg2)
{
f32 tmp = arg1[0] - arg2 * 0.27777779f;
arg0[0] += arg2 * (arg1[0] + tmp) * 0.5f;
arg1[0] = tmp;
}
void func0f096628(f32 *arg0, f32 *arg1, f32 arg2)
{
func0f0965e4(&arg0[1], &arg1[1], arg2);
arg0[0] += arg2 * arg1[0];
arg0[2] += arg2 * arg1[2];
}
void func0f096698(Mtxf *arg0, Mtxf *arg1, s32 count)
{
s32 i;
for (i = 0; i < count; i++) {
mtx00015be0(arg1, arg0);
}
}