/*- * Copyright (C) 2025 Alessandro Iezzi * * This file is part of Tris Game. * * Tris Game is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Tris Game is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Tris Game. If not, see . */ #include #include #include "board.h" #include "../../util/list.h" static Log *log = NULL; static void init_log(void) { if (log != NULL) return; log = log_create("Board"); } Board * board_new(float left, float right, float top, float bottom, float box_size) { init_log(); Board *board = malloc(sizeof(Board)); if (board == NULL) { log_error(log, "Cannot allocate Board struct"); 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 = color_new(0.1f, 0.3f, 0.5f, 1.0f); board->lines = list_create(); /* Vertical lines */ list_add(board->lines, engine_line_new(left + box_size, top, left + box_size, bottom)); list_add(board->lines, engine_line_new(right - box_size, top, right - box_size, bottom)); /* Horizontal lines */ list_add(board->lines, engine_line_new(left, top + box_size, right, top + box_size)); list_add(board->lines, engine_line_new(left, bottom - box_size, right, bottom - box_size)); return board; }