diff --git a/src/gamestate.c b/src/gamestate.c index aa1c4fe..dece1a4 100644 --- a/src/gamestate.c +++ b/src/gamestate.c @@ -165,6 +165,14 @@ SYMBOL_EXPORT void ResumeGamestate(struct Game *game, const char* name) { } } +SYMBOL_EXPORT void UnloadAllGamestates(struct Game *game) { + struct Gamestate *tmp = game->_priv.gamestates; + while (tmp) { + UnloadGamestate(game, tmp->name); + tmp = tmp->next; + } +} + SYMBOL_EXPORT void SwitchGamestate(struct Game *game, const char* current, const char* n) { StopGamestate(game, current); UnloadGamestate(game, current); diff --git a/src/gamestate.h b/src/gamestate.h index 2d90618..b006d0d 100644 --- a/src/gamestate.h +++ b/src/gamestate.h @@ -58,6 +58,7 @@ void StartGamestate(struct Game *game, const char* name); void StopGamestate(struct Game *game, const char* name); void PauseGamestate(struct Game *game, const char* name); void ResumeGamestate(struct Game *game, const char* name); +void UnloadAllGamestates(struct Game *game); void SwitchGamestate(struct Game *game, const char* current, const char* n); #endif