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;