else
break;
}
- for(ix = x, iy = y; ix >= 0 && iy >= 0; ix--, iy--) {
+ for(ix = x-1, iy = y-1; ix >= 0 && iy >= 0; ix--, iy--) {
if(game->matrix[ix][iy].field == field)
fc++;
else
else
break;
}
- for(ix = x, iy = y; ix >= 0 && iy < FOURWINS_MATRIX_HEIGHT; ix--, iy++) {
+ for(ix = x-1, iy = y+1; ix >= 0 && iy < FOURWINS_MATRIX_HEIGHT; ix--, iy++) {
if(game->matrix[ix][iy].field == field)
fc++;
else
if(prev)
prev->next = game->next;
else
- fourwins_active_games->next = game->next;
+ fourwins_active_games = game->next;
+ break;
} else
prev = cgame;
}
}
}
-void fourwins_event_quit(struct UserNode *user) {
- struct fourwins_game *game;
- for(game = fourwins_active_games; game; game = game->next) {
- if(game->player[0]->user == user || game->player[1]->user == user) {
- fourwins_reply(game, "NF_4WINS_GAME_CLOSED");
- fourwins_free_game(game);
- return;
- }
- struct fourwins_guest *guest, *prev_guest = NULL;
- for(guest = game->guests; guest; guest = guest->next) {
- if(guest->chanuser->user == user) {
- if(prev_guest)
- prev_guest->next = guest->next;
- else
- game->guests = guest->next;
- free(guest);
- break;
- } else
- prev_guest = guest;
- }
- }
-}
-
void fourwins_event_freechan(struct ChanNode *chan) {
struct fourwins_game *game;
for(game = fourwins_active_games; game; game = game->next) {