mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2025-02-01 02:56:43 +01:00
loading screen fixes
This commit is contained in:
parent
0b49342e39
commit
8087ad1afc
2 changed files with 5 additions and 6 deletions
|
@ -159,12 +159,13 @@ SYMBOL_INTERNAL void GamestateProgress(struct Game *game) {
|
|||
struct Gamestate *tmp = game->_priv.cur_gamestate.tmp;
|
||||
game->_priv.cur_gamestate.p++;
|
||||
DrawGamestates(game);
|
||||
float progress = ((game->_priv.cur_gamestate.p / (*(tmp->api.Gamestate_ProgressCount) ? (float)*(tmp->api.Gamestate_ProgressCount) : 1))/(float)game->_priv.cur_gamestate.toLoad)+(game->_priv.cur_gamestate.loaded/(float)game->_priv.cur_gamestate.toLoad);
|
||||
float progressCount = *(tmp->api.Gamestate_ProgressCount) ? (float)*(tmp->api.Gamestate_ProgressCount) : 1;
|
||||
float progress = ((game->_priv.cur_gamestate.p / progressCount) / (float)game->_priv.cur_gamestate.toLoad) + (game->_priv.cur_gamestate.loaded/(float)game->_priv.cur_gamestate.toLoad);
|
||||
if (game->config.debug) PrintConsole(game, "[%s] Progress: %d% (%d/%d)", tmp->name, (int)(progress*100), game->_priv.cur_gamestate.p, *(tmp->api.Gamestate_ProgressCount));
|
||||
if (tmp->showLoading) (*game->_priv.loading.Draw)(game, game->_priv.loading.data, progress);
|
||||
DrawConsole(game);
|
||||
if (al_get_time() - game->_priv.cur_gamestate.t >= 1/60.0) {
|
||||
al_flip_display();
|
||||
game->_priv.cur_gamestate.t = al_get_time();
|
||||
}
|
||||
game->_priv.cur_gamestate.t = al_get_time();
|
||||
}
|
||||
|
|
|
@ -231,6 +231,7 @@ SYMBOL_EXPORT int libsuperderpy_run(struct Game *game) {
|
|||
if (redraw && al_is_event_queue_empty(game->_priv.event_queue)) {
|
||||
|
||||
struct Gamestate *tmp = game->_priv.gamestates;
|
||||
|
||||
game->_priv.cur_gamestate.toLoad = 0;
|
||||
game->_priv.cur_gamestate.loaded = 0;
|
||||
|
||||
|
@ -298,9 +299,6 @@ SYMBOL_EXPORT int libsuperderpy_run(struct Game *game) {
|
|||
|
||||
game->_priv.cur_gamestate.p = 0;
|
||||
|
||||
game->_priv.cur_gamestate.t = al_get_time();
|
||||
|
||||
// initially draw loading screen with empty bar
|
||||
DrawGamestates(game);
|
||||
if (tmp->showLoading) {
|
||||
(*game->_priv.loading.Draw)(game, game->_priv.loading.data, game->_priv.cur_gamestate.loaded/(float)game->_priv.cur_gamestate.toLoad);
|
||||
|
@ -308,8 +306,8 @@ SYMBOL_EXPORT int libsuperderpy_run(struct Game *game) {
|
|||
DrawConsole(game);
|
||||
if (al_get_time() - game->_priv.cur_gamestate.t >= 1/60.0) {
|
||||
al_flip_display();
|
||||
game->_priv.cur_gamestate.t = al_get_time();
|
||||
}
|
||||
game->_priv.cur_gamestate.t = al_get_time();
|
||||
game->_priv.cur_gamestate.tmp = tmp;
|
||||
tmp->data = (*tmp->api.Gamestate_Load)(game, &GamestateProgress);
|
||||
game->_priv.cur_gamestate.loaded++;
|
||||
|
|
Loading…
Reference in a new issue