diff --git a/lib/gamacon b/lib/gamacon index a1e4936..bf80bda 160000 --- a/lib/gamacon +++ b/lib/gamacon @@ -1 +1 @@ -Subproject commit a1e4936dba3d8de7905d433081cb62765497a97d +Subproject commit bf80bda8a20bbefeb86ca0515869ba01e3d14dd3 diff --git a/lib/xmlparser b/lib/xmlparser index 29f8d8b..e060848 160000 --- a/lib/xmlparser +++ b/lib/xmlparser @@ -1 +1 @@ -Subproject commit 29f8d8b9108f01a9cb3c0207a3a623b48e1b256d +Subproject commit e060848bef2a5781e09c3bd108c9e27e9d01b498 diff --git a/prefabs/game.gcprefab b/prefabs/game.gcprefab index 5332ff8..af304b1 100644 --- a/prefabs/game.gcprefab +++ b/prefabs/game.gcprefab @@ -56,16 +56,12 @@ - - - - + - - + diff --git a/src/components/live_component.c b/src/components/live_component.c index a270962..d92b413 100644 --- a/src/components/live_component.c +++ b/src/components/live_component.c @@ -22,13 +22,13 @@ static void on_collide(gc_engine *engine, gc_entity *entity, int id) if (GETCOLCMP(kill_component)) { cmp->live--; if (cmp->live < 0) { - exit(0); + engine->should_close = true; } else { trans->position = cmp->spawn_position; } } if (GETCOLCMP(win_component)) { - exit(0); + engine->should_close = true; } } diff --git a/src/game_loader.c b/src/game_loader.c index 850113d..ec40f2e 100644 --- a/src/game_loader.c +++ b/src/game_loader.c @@ -63,13 +63,8 @@ int start_game(const char *map) return (ERROR); if (create_game_scene(engine, map) < 0) return (ERROR); - while (engine->is_open(engine)) { + while (engine->is_open(engine)) engine->game_loop(engine, sfTime_asSeconds(sfClock_restart(clock))); - if (engine->is_keypressed(sfKeyEscape)) { - prefab_load(engine, "prefabs/pause.gcprefab"); - sfClock_restart(clock); - } - } engine->destroy(engine); sfClock_destroy(clock); return (0); diff --git a/src/systems/timer_system.c b/src/systems/timer_system.c index a58b9de..d8d4b2c 100644 --- a/src/systems/timer_system.c +++ b/src/systems/timer_system.c @@ -23,6 +23,8 @@ gc_entity *entity, float dtime) if (!rend || rend->type != GC_TXTREND) return; timer->time_left -= dtime; + if (((gc_text *)rend->data)->text) + free(((gc_text *)rend->data)->text); ((gc_text *)rend->data)->text = tostr((int)timer->time_left); (void)system; (void)engine;