int _helpwindow (char *msg, int xoffset, int yoffset, int length)
{
- int i = 0;
- int j = 0;
+ int i = 0, j = 0;
while ((msg) && (*msg != '\0')) {
if ((*msg == '\n') || (i == length)) {
i = 0;
void _displaytitle (char *title, int xoffset, int yoffset)
{
- int i;
- for (i = 0; title[i] != '\0'; i++) {
+ for (int i = 0; title[i] != '\0'; i++) {
mvaddch (yoffset, xoffset + i, title[i]);
mvaddch (yoffset + 1, xoffset + i, ACS_HLINE);
}
void _dobound (int xsize, int ysize, int xoffset, int yoffset)
{
- int i, j;
-
- for (i = 0; i < xsize; i++) {
+ for (int i = 0; i < xsize; i++) {
mvaddch (yoffset - 1, xoffset + i, ACS_HLINE);
mvaddch (yoffset + ysize, xoffset + i, ACS_HLINE);
}
- for (j = 0; j < ysize; j++) {
+ for (int j = 0; j < ysize; j++) {
mvaddch (yoffset + j, xoffset - 1, ACS_VLINE);
mvaddch (yoffset + j, xoffset + xsize, ACS_VLINE);
}
void boardwindow (board_t *board, int mode)
{
- int i, j;
-
setcolor (mode ? gray_black : black_gray);
_dobound (board->xsize, board->ysize, board->xoffset, board->yoffset);
setcolor (gray_black);
- for (i = 0; i < board->width; i++) {
- for (j = 0; j < board->height; j++) {
+ for (int i = 0; i < board->width; i++) {
+ for (int j = 0; j < board->height; j++) {
_element (board, i, j, *getcell (board, i, j) - ' ');
}
}
void displayblock (board_t *board, block_t *block, int x, int y)
{
- int i, j;
-
- for (i = 0; i < block->width; i++) {
- for (j = 0; j < block->height; j++) {
+ for (int i = 0; i < block->width; i++) {
+ for (int j = 0; j < block->height; j++) {
if (*getcell (block, i, j) != ' ') {
_element (board, x + i, y + j, block->color);
}
_dobound (length, 1, xoffset, yoffset);
setcolor (gray_black);
- int i = 0, j;
+ int i = 0;
int stop = 0;
while (!stop) {
- for (j = 0; j < length; j++) {
+ for (int j = 0; j < length; j++) {
setcolor ((j == i) ? yellow_black : black_gray);
mvaddch (yoffset, xoffset + j, name[j]);
setcolor (gray_black);
}
if (name) {
- for (j = length - 1; j >= 0; j--) {
+ for (int j = length - 1; j >= 0; j--) {
if (name[j] == ' ') {
name[j] = '\0';
}
setcolor (gray_black);
_dobound ((length > 0) ? length : (int)strlen (msg), 1, xoffset, yoffset);
if (length > 0) {
- int i;
- for (i = 0; i < length; i++) {
+ for (int i = 0; i < length; i++) {
mvaddch (yoffset, xoffset + i, ' ');
}
}
int _makecomments (char *buffer, board_t *board)
{
- int i, j, l = 0;
- for (j = 0; j < board->height; j++) {
+ int l = 0;
+ for (int j = 0; j < board->height; j++) {
l += sprintf (buffer + l, "rem: \"");
- for (i = 0; i < board->width; i++) {
+ for (int i = 0; i < board->width; i++) {
l += sprintf (buffer + l, "%c", *getcell (board, i, j));
}
l += sprintf (buffer + l, "\"\n");
int _sprinttab (char *buffer, char *name, int *tab, int nb)
{
- int i;
int l = sprintf (buffer, "%s: \"", name);
- for (i = 0; i < nb; i++) {
+ for (int i = 0; i < nb; i++) {
l += sprintf (buffer + l, "%c", _itoz (tab[i]));
}
l += sprintf (buffer + l, "\"\n");
char *saveboard (board_t *board, blocks_t *blocks)
{
- int i;
int size = 3 * (8 + 2) + 7 + board->width * board->height;
size += 3 * (8 + blocks->nb);
- for (i = 0; i < blocks->nb; i++) {
+ for (int i = 0; i < blocks->nb; i++) {
int nbdigits = (i < 10) ? 1 : 2;
block_t *block = blocks->block[i];
size += 3 * (11 + nbdigits + 2) + 12 + nbdigits + block->width * block->height;
l += _sprinttab (buffer + l, "x", blocks->x, blocks->nb);
l += _sprinttab (buffer + l, "y", blocks->y, blocks->nb);
l += _sprinttab (buffer + l, "settle", blocks->settle, blocks->nb);
- for (i = 0; i < blocks->nb; i++) {
+ for (int i = 0; i < blocks->nb; i++) {
l += _sprintblock (buffer + l, i, blocks->block[i]);
}
if (fd) {
fseek (fd, 0, SEEK_END);
int size = ftell (fd);
- buffer = (char *) calloc (size + 1, 1);
- CHECKALLOC (buffer);
+ if (size == -1) {
+ VERBOSE (WARNING, printf ("can't read file (%s)\n", filename));
+ } else {
+ buffer = (char *) calloc (size + 1, 1);
+ CHECKALLOC (buffer);
- fseek (fd, 0, SEEK_SET);
- int nb = fread (buffer, 1, size, fd);
- if (nb != size) {
- VERBOSE (WARNING, printf ("can't fully read file (%s)\n", filename));
+ fseek (fd, 0, SEEK_SET);
+ int nb = fread (buffer, 1, size, fd);
+ if (nb != size) {
+ VERBOSE (WARNING, printf ("can't fully read file (%s)\n", filename));
+ }
}
fclose (fd);
}
void loadboard (char *str, board_t **pboard, blocks_t **pblocks)
{
- int i;
int width = 0;
int height = 0;
char *tab = NULL;
} else if (strcmp (keyword, "settle") == 0) {
settle = atos (value);
} else if (_checkblockref (keyword, "width")) {
- i = atoi (keyword + 6);
+ int i = atoi (keyword + 6);
if (i < MAXNBBLOCKS) {
(block + i)->width = atoi (value);
}
} else if (_checkblockref (keyword, "height")) {
- i = atoi (keyword + 7);
+ int i = atoi (keyword + 7);
if (i < MAXNBBLOCKS) {
(block + i)->height = atoi (value);
}
} else if (_checkblockref (keyword, "color")) {
- i = atoi (keyword + 6);
+ int i = atoi (keyword + 6);
if (i < MAXNBBLOCKS) {
(block + i)->color = atoi (value);
}
} else if (_checkblockref (keyword, "block")) {
- i = atoi (keyword + 6);
+ int i = atoi (keyword + 6);
if (i < MAXNBBLOCKS) {
(block + i)->tab = atos (value);
}
(settle) && (strlen (settle) == (size_t)(nb))) {
error = 0;
blocks = initblocks (nb);
- for (i = 0; i < nb; i++) {
+ for (int i = 0; i < nb; i++) {
blocks->x[i] = _ztoi (x[i]);
blocks->y[i] = _ztoi (y[i]);
blocks->settle[i] = _ztoi (settle[i]);
block_t *mirrorblock (block_t *block, int dir)
{
- int i, j;
switch (dir % 2) {
case 0:
- for (i = 0; i < block->width; i++) {
- for (j = 0; j < block->height / 2; j++) {
+ for (int i = 0; i < block->width; i++) {
+ for (int j = 0; j < block->height / 2; j++) {
char t = *getcell (block, i, j);
*getcell (block, i, j) = *getcell (block, i, block->height - 1 - j);
*getcell (block, i, block->height - 1 - j) = t;
}
break;
case 1:
- for (i = 0; i < block->width / 2; i++) {
- for (j = 0; j < block->height; j++) {
+ for (int i = 0; i < block->width / 2; i++) {
+ for (int j = 0; j < block->height; j++) {
char t = *getcell (block, i, j);
*getcell (block, i, j) = *getcell (block, block->width - 1 - i, j);
*getcell (block, block->width - 1 - i, j) = t;
block_t *rotateblock (block_t *block, int rot)
{
- int i, j;
-
rot = (rot > 0) ? rot % 4 : ((1 - rot / 4) * 4 + rot) % 4;
block_t *newblock = NULL;
case 1:
newblock = initblock (block->height, block->width);
newblock->color = block->color;
- for (i = 0; i < block->width; i++) {
- for (j = 0; j < block->height; j++) {
+ for (int i = 0; i < block->width; i++) {
+ for (int j = 0; j < block->height; j++) {
*getcell (newblock, block->height - 1 - j, i) = *getcell (block, i, j);
}
}
case 2:
newblock = initblock (block->width, block->height);
newblock->color = block->color;
- for (i = 0; i < block->width; i++) {
- for (j = 0; j < block->height; j++) {
+ for (int i = 0; i < block->width; i++) {
+ for (int j = 0; j < block->height; j++) {
*getcell (newblock, block->width - 1 - i, block->height - 1 - j) = *getcell (block, i, j);
}
}
case 3:
newblock = initblock (block->height, block->width);
newblock->color = block->color;
- for (i = 0; i < block->width; i++) {
- for (j = 0; j < block->height; j++) {
+ for (int i = 0; i < block->width; i++) {
+ for (int j = 0; j < block->height; j++) {
*getcell (newblock, j, block->width - 1 - i) = *getcell (block, i, j);
}
}
void freeblocks (blocks_t *blocks)
{
if (blocks) {
- int i;
- for (i = 0; i < blocks->nb; i++) {
+ for (int i = 0; i < blocks->nb; i++) {
freeblock (blocks->block[i]);
}
free (blocks->x);
int testposition (board_t *board, block_t *block, int x, int y)
{
- int i, j;
-
- for (i = 0; i < block->width; i++) {
- for (j = 0; j < block->height; j++) {
+ for (int i = 0; i < block->width; i++) {
+ for (int j = 0; j < block->height; j++) {
if (*getcell (block, i, j) != ' ') {
if (*getcell (board, x + i, y + j) != ' ') {
return 0;
void settleblock (board_t *board, block_t *block, int x, int y, int mode)
{
- int i, j;
-
- for (i = 0; i < block->width; i++) {
- for (j = 0; j < block->height; j++) {
+ for (int i = 0; i < block->width; i++) {
+ for (int j = 0; j < block->height; j++) {
if (*getcell (block, i, j) != ' ') {
*getcell (board, x + i, y + j) = ' ' + ((mode) ? block->color : 0);
}
int endofgame (board_t *board)
{
- int i, j;
-
- for (i = 0; i < board->width; i++) {
- for (j = 0; j < board->height; j++) {
+ for (int i = 0; i < board->width; i++) {
+ for (int j = 0; j < board->height; j++) {
if (*getcell (board, i, j) == ' ') {
return 0;
}