From 3768cde7594ee1c39b09e14369452652282e66e8 Mon Sep 17 00:00:00 2001 From: Oxore Date: Sat, 2 Dec 2017 10:35:47 +0300 Subject: Apply loading from yaml file for texts in menu --- dat/ya.yaml | 4 ++-- src/main.c | 33 +++++++++++---------------------- src/text.c | 4 ++-- 3 files changed, 15 insertions(+), 26 deletions(-) diff --git a/dat/ya.yaml b/dat/ya.yaml index b6882ce..1086999 100644 --- a/dat/ya.yaml +++ b/dat/ya.yaml @@ -31,6 +31,6 @@ scene: "menu" text: "Press \"S\" to start" font: "Arial" - size: 36 - x: 266 + size: 20 + x: 276 y: 200 diff --git a/src/main.c b/src/main.c index 739c4e7..6f28c0f 100644 --- a/src/main.c +++ b/src/main.c @@ -6,8 +6,6 @@ Window w = {.mode = {450, 520, 32}}; Game game = {.isStarted = 0, .scoreCurrent = 0, .level = 1}; List *texts; -Text menu1; -Text menu2; Text score; Text level; sfFont *fontScore; @@ -58,22 +56,6 @@ void prepare() { sfText_setCharacterSize(level.sfText, 20); sfText_setPosition(level.sfText, (sfVector2f){.x = 250+10+10, .y = 44}); - /* - * Menu texts - * - */ - menu1.sfText = sfText_create(); - sfText_setFont(menu1.sfText, fontScore); - sfText_setCharacterSize(menu1.sfText, 36); - sfText_setPosition(menu1.sfText, (sfVector2f){.x = 250+10+30, .y = 100}); - sfText_setString(menu1.sfText, "TETRIS"); - - menu2.sfText = sfText_create(); - sfText_setFont(menu2.sfText, fontScore); - sfText_setCharacterSize(menu2.sfText, 20); - sfText_setPosition(menu2.sfText, (sfVector2f){.x = 250+10+16, .y = 200}); - sfText_setString(menu2.sfText, "Press \"S\" to start"); - w.window = sfRenderWindow_create(w.mode, windowName_conf, sfResize | sfClose, @@ -109,11 +91,19 @@ void menuTick() } } +void drawTextsAtScene(List *texts, char *scene, sfRenderWindow *window) { + List *t = texts; + while (t) { + if (!strcmp(((Text *)t->obj)->scene, scene)) + sfRenderWindow_drawText(window, ((Text *)t->obj)->sfText, NULL); + t = t->next; + } +} + void menuLoop() { menuTick(); drawFld(w.window); - sfRenderWindow_drawText(w.window, menu1.sfText, NULL); - sfRenderWindow_drawText(w.window, menu2.sfText, NULL); + drawTextsAtScene(texts, "menu", w.window); if (sfKeyboard_isKeyPressed(sfKeyS) == 1) { game.isStarted = 1; freeFld(); @@ -144,8 +134,7 @@ int main() freeFld(); sfRenderWindow_destroy(w.window); sfText_destroy(score.sfText); - sfText_destroy(menu1.sfText); - sfText_destroy(menu2.sfText); + ListOfText_free(&texts); return EXIT_SUCCESS; } diff --git a/src/text.c b/src/text.c index c922f34..8932496 100644 --- a/src/text.c +++ b/src/text.c @@ -210,7 +210,7 @@ void _loadText_initSfText(Text *objo, void *obji) int size = _loadText_getInt(obji, "size"); char *text = _loadText_getString(obji, "text"); objo->sfText = sfText_create(); - //sfText_setFont(objo->sfText, fontScore); + sfText_setFont(objo->sfText, fontScore); sfText_setCharacterSize(objo->sfText, size); sfText_setPosition(objo->sfText, pos); sfText_setString(objo->sfText, text); @@ -242,7 +242,7 @@ void Text_free(Text *obj) free(obj->scene); free(obj->text); free(obj->font); - //sfText_destroy(obj->sfText); + sfText_destroy(obj->sfText); free(obj); } -- cgit v1.2.3