#ifndef ULTRA64_TYPES_H #define ULTRA64_TYPES_H #include #include #include typedef signed char s8; typedef unsigned char u8; typedef signed short int s16; typedef unsigned short int u16; typedef signed int s32; typedef unsigned int u32; typedef signed long long int s64; typedef unsigned long long int u64; typedef volatile u8 vu8; typedef volatile u16 vu16; typedef volatile u32 vu32; typedef volatile u64 vu64; typedef volatile s8 vs8; typedef volatile s16 vs16; typedef volatile s32 vs32; typedef volatile s64 vs64; typedef float f32; typedef double f64; #if 0 typedef s32 ptrdiff_t; typedef s32 intptr_t; typedef u32 uintptr_t; #endif #ifndef GBI_FLOATS typedef int Mtx_t[4][4]; typedef union { Mtx_t m; struct { u16 intPart[4][4]; u16 fracPart[4][4]; }; long long int forc_structure_alignment; } Mtx; #else typedef struct { float m[4][4]; } Mtx; #endif typedef float MtxF_t[4][4]; typedef union { MtxF_t mf; struct { float xx, yx, zx, wx, xy, yy, zy, wy, xz, yz, zz, wz, xw, yw, zw, ww; }; } MtxF; #endif