summaryrefslogtreecommitdiff
path: root/soh/src/libultra/gu/sins.c
blob: fae3665b7842addc6272c4372a208ecd4b28cbc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <libultraship/libultra.h>
#include "sintable.c"

s16 sins(u16 x) {
    s16 value;

    x >>= 4;

    if (x & 0x400) {
        value = sintable[0x3FF - (x & 0x3FF)];
    } else {
        value = sintable[x & 0x3FF];
    }

    if (x & 0x800) {
        return -value;
    } else {
        return value;
    }
}