diff options
author | scw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2005-08-15 14:26:17 +0800 |
---|---|---|
committer | scw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2005-08-15 14:26:17 +0800 |
commit | 98f0f5e0a45c6771ce43d69a13aa9b9ecce3faf9 (patch) | |
tree | 319ebe57c18b21b8f31c95cd92626163e472b7e2 /mbbsd/talk.c | |
parent | 5936d5aa8dd56d023c8aa475ac0505406af88268 (diff) | |
download | pttbbs-98f0f5e0a45c6771ce43d69a13aa9b9ecce3faf9.tar pttbbs-98f0f5e0a45c6771ce43d69a13aa9b9ecce3faf9.tar.gz pttbbs-98f0f5e0a45c6771ce43d69a13aa9b9ecce3faf9.tar.bz2 pttbbs-98f0f5e0a45c6771ce43d69a13aa9b9ecce3faf9.tar.lz pttbbs-98f0f5e0a45c6771ce43d69a13aa9b9ecce3faf9.tar.xz pttbbs-98f0f5e0a45c6771ce43d69a13aa9b9ecce3faf9.tar.zst pttbbs-98f0f5e0a45c6771ce43d69a13aa9b9ecce3faf9.zip |
Gomoku convertion to chess.c framework
* versus, watching and personal playing
* undo function removed due to the restriction of
the framework currently
chess.c framework update
* resign confirm
* invited peer can be watched
!!!NOTE!!! Gomoku protocal not backward compatible
RESTART WHOLE system to ensure correctness
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3036 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/talk.c')
-rw-r--r-- | mbbsd/talk.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/mbbsd/talk.c b/mbbsd/talk.c index bcf16cf0..920035e8 100644 --- a/mbbsd/talk.c +++ b/mbbsd/talk.c @@ -1429,7 +1429,7 @@ my_talk(userinfo_t * uin, int fri_stat, char defact) ch == DARK || ch == GO || ch == CHESSWATCHING || (!ch && (uin->chatid[0] == 1 || uin->chatid[0] == 3)) || uin->lockmode == M_FIVE || uin->lockmode == CHC) { - if (ch == CHC) { + if (ch == CHC || ch == M_FIVE || ch == CHESSWATCHING) { kill(uin->pid, SIGUSR1); sock = make_connection_to_somebody(uin, 20); if (sock < 0) @@ -1446,7 +1446,16 @@ my_talk(userinfo_t * uin, int fri_stat, char defact) return; } strlcpy(currutmp->mateid, uin->userid, sizeof(currutmp->mateid)); - chc(msgsock, CHESS_MODE_WATCH); + + switch (uin->sig) { + case SIG_CHC: + chc(msgsock, CHESS_MODE_WATCH); + break; + + case SIG_GOMO: + gomoku(msgsock, CHESS_MODE_WATCH); + break; + } } } else @@ -1547,7 +1556,7 @@ my_talk(userinfo_t * uin, int fri_stat, char defact) close(sock); currutmp->sockactive = NA; - if (uin->sig == SIG_CHC) + if (uin->sig == SIG_CHC || uin->sig == SIG_GOMO) ChessEstablishRequest(msgsock); add_io(msgsock, 0); @@ -1576,7 +1585,7 @@ my_talk(userinfo_t * uin, int fri_stat, char defact) chickenpk(msgsock); break; case SIG_GOMO: - gomoku(msgsock); + gomoku(msgsock, CHESS_MODE_VERSUS); break; case SIG_CHC: chc(msgsock, CHESS_MODE_VERSUS); @@ -2971,7 +2980,7 @@ talkreply(void) currutmp->destuid = uip->uid; currstat = REPLY; /* ÁקK¥X²{°Êµe */ - is_chess = (sig == SIG_CHC); + is_chess = (sig == SIG_CHC || sig == SIG_GOMO); a = reply_connection_request(uip); if (a < 0) { @@ -3051,7 +3060,7 @@ talkreply(void) chickenpk(a); break; case SIG_GOMO: - gomoku(a); + gomoku(a, CHESS_MODE_VERSUS); break; case SIG_CHC: chc(a, CHESS_MODE_VERSUS); |