\r
static char zippyPartner[MSG_SIZ];\r
static char zippyLastOpp[MSG_SIZ];\r
+static char zippyOffender[MSG_SIZ]; // [HGM] aborter\r
static int zippyConsecGames;\r
static time_t zippyLastGameEnd;\r
\r
SendToICS("\n");\r
}\r
zippyLastGameEnd = time(0);\r
+ if(forwardMostMove < appData.zippyShortGame) \r
+ strcpy(zippyOffender, zippyLastOpp); else zippyOffender[0] = 0; // [HGM] aborter\r
}\r
\r
/*\r
return;\r
}\r
\r
+ /* [HGM] aborter: opponent is cheater that aborts games he doesn't like on first move. Make him wait */\r
+ if (strcmp(opponent, zippyOffender) == 0 &&\r
+ difftime(time(0), zippyLastGameEnd) < appData.zippyReplayTimeout) {\r
+ sprintf(buf, "%stell %s Sorry, your previous game against %s was rather short. "\r
+ " It will wait %d seconds to see if a tougher opponent comes along.\n%sdecline %s\n",\r
+ ics_prefix, opponent, ics_handle,\r
+ appData.zippyReplayTimeout, ics_prefix, opponent);\r
+ SendToICS(buf);\r
+ return;\r
+ }\r
+\r
/* Engine not yet initialized or still thinking about last game? */\r
if (!first.initDone || first.lastPing != first.lastPong) {\r
sprintf(buf, "%stell %s I'm not quite ready for a new game yet; try again soon.\n%sdecline %s\n",\r