#ifndef STATE_H #define STATE_H #include typedef enum StateType { STATE_null, #define State(name) STATE_##name, #include #undef State STATE_quit, } StateType; extern const char *StateTypeStr[]; StateType(*State_updateFunc(StateType type))(void*); void State_init(StateType type, memory *mem); void State_free(StateType type, memory *mem); StateType State_update(StateType type, memory *mem); /* Reloads shared object file associated with state */ #ifdef DAW_BUILD_HOTRELOAD #include bool State_reload(StateType type, i_ctx **ctx, usize ctx_len); #else #define State_reload(_, _0, _1) true #endif #endif