summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOxore <oxore@protonmail.com>2017-12-02 10:35:47 +0300
committerOxore <oxore@protonmail.com>2017-12-02 10:35:47 +0300
commit3768cde7594ee1c39b09e14369452652282e66e8 (patch)
tree5d925a33484adcd3a0b4dca2904b3ba865c62544 /src
parent0bdb97ed81ec84bd587c08f1726b86af6d268d08 (diff)
Apply loading from yaml file for texts in menu
Diffstat (limited to 'src')
-rw-r--r--src/main.c33
-rw-r--r--src/text.c4
2 files changed, 13 insertions, 24 deletions
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);
}