summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2025-05-22 12:34:20 +0200
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2025-05-22 12:34:20 +0200
commit0c7a2228b73f48ce58159af77fdf55cf9c682422 (patch)
tree1c3dd7b2e01768b43a3463607d1bd4bd978ba7ca
parent4c3cee6bf51ecba1cd03c457e3facc1947e9fedc (diff)
downloadtris-0c7a2228b73f48ce58159af77fdf55cf9c682422.tar.gz
tris-0c7a2228b73f48ce58159af77fdf55cf9c682422.zip
Add some default background
-rw-r--r--src/main/engine/engine.c6
-rw-r--r--src/main/engine/engine.h1
-rw-r--r--src/main/game/domain/board.c4
-rw-r--r--src/main/game/game.c3
-rw-r--r--src/main/game/game.h2
5 files changed, 15 insertions, 1 deletions
diff --git a/src/main/engine/engine.c b/src/main/engine/engine.c
index fb0875a..3b77b40 100644
--- a/src/main/engine/engine.c
+++ b/src/main/engine/engine.c
@@ -314,3 +314,9 @@ engine_set_rendering_background(Engine *engine, float r, float g, float b, float
color_set_rgba(engine->rendering_background, r, g, b, a);
}
}
+
+void
+engine_set_rendering_background_c(Engine *engine, Color *color)
+{
+ engine_set_rendering_background(engine, color->r, color->g, color->b, color->a);
+}
diff --git a/src/main/engine/engine.h b/src/main/engine/engine.h
index 1e26f05..b70c8c2 100644
--- a/src/main/engine/engine.h
+++ b/src/main/engine/engine.h
@@ -39,6 +39,7 @@ typedef struct {
Engine *engine_new(int width, int height);
void engine_set_rendering_background(Engine *engine, float r, float g, float b, float a);
+void engine_set_rendering_background_c(Engine *engine, Color *color);
void engine_draw_circle(float cx, float cy, float r, int num_segments, int outline);
void engine_draw_line(float x1, float y1, float x2, float y2);
void engine_loop(void);
diff --git a/src/main/game/domain/board.c b/src/main/game/domain/board.c
index 6859eae..f169c7e 100644
--- a/src/main/game/domain/board.c
+++ b/src/main/game/domain/board.c
@@ -41,5 +41,9 @@ board_new(void)
exit(EXIT_FAILURE);
}
+ board->default_color = color_new(0.0f, 0.0f, 0.2f, 1.0f);
+ board->wining_color = color_new(0.0f, 0.5f, 0.0f, 1.0f);
+ board->draft_color;
+
return board;
}
diff --git a/src/main/game/game.c b/src/main/game/game.c
index ee35f7d..788b5b2 100644
--- a/src/main/game/game.c
+++ b/src/main/game/game.c
@@ -73,7 +73,7 @@ check_win(TrisGame *game)
if (game->cells[i0]->sign != '\0'
&& game->cells[i0]->sign == game->cells[i1]->sign
&& game->cells[i1]->sign == game->cells[i2]->sign) {
- engine_set_rendering_background(game->engine, 0.0f, 0.5f, 0.0f, 1.0f);
+ engine_set_rendering_background_c(game->engine, game->board->wining_color);
}
}
}
@@ -136,6 +136,7 @@ game_init(int width, int height)
game->sign = SIGN_CIRCLE;
game->moves = 0;
game->engine = engine_new(width, height);
+ game->board = board_new();
ui_set_title("Tris Game");
engine_set_mouse_button_listener(game_mouse_button_pressed, game);
diff --git a/src/main/game/game.h b/src/main/game/game.h
index d119f67..f30296c 100644
--- a/src/main/game/game.h
+++ b/src/main/game/game.h
@@ -24,9 +24,11 @@
#include "cell.h"
#include "../engine/engine.h"
+#include "domain/board.h"
typedef struct TrisGame {
int width, height;
+ Board *board;
Cell *cells[BOARD_SIZE];
char sign; /* x = cross and o = circle */
int moves;