summaryrefslogtreecommitdiffstats
path: root/mbbsd/talk.c
diff options
context:
space:
mode:
authorscw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-08-15 14:26:17 +0800
committerscw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-08-15 14:26:17 +0800
commit98f0f5e0a45c6771ce43d69a13aa9b9ecce3faf9 (patch)
tree319ebe57c18b21b8f31c95cd92626163e472b7e2 /mbbsd/talk.c
parent5936d5aa8dd56d023c8aa475ac0505406af88268 (diff)
downloadpttbbs-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.c21
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);