X-Git-Url: http://winboard.nl/cgi-bin?p=capablanca.git;a=blobdiff_plain;f=lasker-2.2.3%2Fsrc%2Fseekproc.c;h=94960c4e210bfcb354b666f5966b9877ad0defa2;hp=8a1b9f61c4e732c3dd034b2252385e29a61cbd0d;hb=ba3ffb7d49d122559afbc591d56dc14074b841e6;hpb=76a192175f31fcb85ba99e354916dd78b9e5850e diff --git a/lasker-2.2.3/src/seekproc.c b/lasker-2.2.3/src/seekproc.c index 8a1b9f6..94960c4 100644 --- a/lasker-2.2.3/src/seekproc.c +++ b/lasker-2.2.3/src/seekproc.c @@ -65,7 +65,6 @@ int com_seek(int p, param_list param) pprintf(p, "ERROR: Sorry, all available slots for seek are closed.\n"); return COM_OK; } - seek_globals.ads[num].status = SEEKCLOSED; seek_globals.ads[num].whofrom = p; #if 1 @@ -78,6 +77,25 @@ int com_seek(int p, param_list param) board,param[0].val.string)) return COM_OK; /* couldn't parse */ } + + if (category[0]) { + if (!board[0] && strcmp(category,"bughouse")) { + pprintf(p, "You must specify a board and a category.\n"); + return COM_OK; + + } else if (board[0]) { /* not bughouse */ + char fname[MAX_FILENAME_SIZE]; + + sprintf(fname, "%s/%s/%s", BOARD_DIR, category, board); + if (!file_exists(fname)) { + pprintf(p, "No such category/board: %s/%s\n", category, board); + return COM_OK; + } + } + } + + seek_globals.ads[num].status = SEEKCLOSED; // params are valid; create ad + if(wt < 0) wt = pp->d_time; if(bt < 0) bt = wt; if(winc < 0) winc = pp->d_inc; if(binc < 0) binc = bt; seek_globals.ads[num].wtime = wt; @@ -100,6 +118,8 @@ int com_seek(int p, param_list param) seek_globals.ads[num].seek_color = random() % 2; #else + seek_globals.ads[num].status = SEEKCLOSED; + if (param[0].type == TYPE_INT) seek_globals.ads[num].wtime = param[0].val.integer; /* White time */ else @@ -187,6 +207,8 @@ int com_play(int p, param_list param) return 0; } +extern FILE *comlog; + int com_sought(int p, param_list param) { int i; @@ -194,6 +216,7 @@ int com_sought(int p, param_list param) for (i = 0; i < seek_globals.max_ads; i++) { if (seek_globals.ads[i].status == SEEKCLOSED) { char *msgtxt = form_ad(&seek_globals.ads[i], i); +if(comlog) fprintf(comlog, "msgtext = %s\n", msgtxt), fflush(comlog); pprintf(p, "%s", msgtxt); free(msgtxt); } @@ -224,7 +247,7 @@ void withdraw_seeks(int p) continue; pprintf_prompt(p1, "AD_DESTROY: %d\n", i); } - pprintf(p, "AD_DESTROY: %d\n", i); + pprintf(p, "Ads removed: %d\n", i); FREE(seek_globals.ads[i].category); FREE(seek_globals.ads[i].board_type); } @@ -276,6 +299,7 @@ static char *form_ad(struct pending * ad, int i) rating = player_globals.parray[ad->whofrom].b_stats.rating; } +if(comlog) fprintf(comlog, "seek %d type = %d\n", i, type), fflush(comlog); if(ad->category[0]) { // [HGM] print category with seek ad sprintf(buf, " %s", ad->category); if(ad->board_type[0] && strcmp(ad->board_type, "0"))