document various assets, bsStoredState.c, and stateTimers.c

This commit is contained in:
Banjo Kazooie
2023-02-16 13:21:40 -06:00
parent dd74091cb7
commit 1c4d1b54cd
107 changed files with 1649 additions and 1255 deletions

64
src/core2/statetimer.c Normal file
View File

@@ -0,0 +1,64 @@
#include "core2/statetimer.h"
extern f32 time_getDelta(void);
typedef struct{
f32 now;
f32 previous;
}StateTimer;
/* .bss */
StateTimer stateTimerList[8];
/* .code */
f32 stateTimer_get(enum state_timer_e timer_id){
return stateTimerList[timer_id].now;
}
f32 stateTimer_getPrevious(enum state_timer_e timer_id){
return stateTimerList[timer_id].previous;
}
bool stateTimer_isActive(enum state_timer_e timer_id){
return stateTimerList[timer_id].now != 0.0f;
}
bool stateTimer_isDone(enum state_timer_e timer_id){
return stateTimerList[timer_id].now == 0.0f;
}
bool stateTimer_isAt(enum state_timer_e timer_id, f32 value){
return (stateTimerList[timer_id].now < value) && (value <= stateTimerList[timer_id].previous);
}
void stateTimer_free(void){}
void stateTimer_init(void){
int i;
for(i = 0; i < 7; i++){
stateTimerList[i].now = 0.0f;
stateTimerList[i].previous = 0.0f;
}
}
void stateTimer_clear(enum state_timer_e timer_id){
stateTimer_set(timer_id, 0.0f);
}
void stateTimer_set(enum state_timer_e timer_id, f32 arg1){
stateTimerList[timer_id].now = arg1;
stateTimerList[timer_id].previous = arg1;
}
void stateTimer_update(void){
int i;
f32 delta = time_getDelta();
for(i = 0; i < 7; i++){
stateTimerList[i].previous = stateTimerList[i].now;
if(0.0f != stateTimerList[i].previous){
stateTimerList[i].now -= delta;
if(stateTimerList[i].now < 0.0f){
stateTimerList[i].now = 0.0f;
}
}
}
}