You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
34 lines
531 B
C
34 lines
531 B
C
#include <ultra64.h>
|
|
#include <PR/gs2dex.h>
|
|
// My matrix stack for S2DEX transformations.
|
|
// Probably doesnt need to be 0x80 long
|
|
#define ARRAY_COUNT(x) (sizeof(x) / sizeof(x[0]))
|
|
|
|
|
|
uObjMtx stack[0x80];
|
|
|
|
u32 stack_top = 0;
|
|
|
|
u32 s_isfull(void) {
|
|
return (stack_top >= ARRAY_COUNT(stack));
|
|
}
|
|
|
|
u32 s_isempty(void) {
|
|
return (stack_top == 0);
|
|
}
|
|
|
|
void s_push(uObjMtx *f) {
|
|
if (!s_isfull())
|
|
stack[++stack_top] = *f;
|
|
}
|
|
|
|
uObjMtx *s_pop(void) {
|
|
if (!s_isempty())
|
|
return &stack[stack_top--];
|
|
}
|
|
|
|
void s_clear(void) {
|
|
stack_top = 0;
|
|
}
|
|
|