summaryrefslogtreecommitdiffstats
path: root/mbbsd/talk.c
diff options
context:
space:
mode:
Diffstat (limited to 'mbbsd/talk.c')
-rw-r--r--mbbsd/talk.c31
1 files changed, 23 insertions, 8 deletions
diff --git a/mbbsd/talk.c b/mbbsd/talk.c
index 7495bcba..a4ba7a1d 100644
--- a/mbbsd/talk.c
+++ b/mbbsd/talk.c
@@ -7,10 +7,10 @@ static char * const IdleTypeTable[] = {
"偶在花呆啦", "情人來電", "覓食中", "拜見周公", "假死狀態", "我在思考"
};
static char * const sig_des[] = {
- "鬥雞", "聊天", "", "下棋", "象棋", "暗棋", "下圍棋",
+ "鬥雞", "聊天", "", "下棋", "象棋", "暗棋", "下圍棋", "下黑白棋",
};
static char * const withme_str[] = {
- "談天", "下五子棋", "鬥寵物", "下象棋", "下暗棋", "下圍棋", NULL
+ "談天", "下五子棋", "鬥寵物", "下象棋", "下暗棋", "下圍棋", "下黑白棋", NULL
};
#define MAX_SHOW_MODE 6
@@ -1566,10 +1566,11 @@ my_talk(userinfo_t * uin, int fri_stat, char defact)
if (ch == EDITING || ch == TALK || ch == CHATING || ch == PAGE ||
ch == MAILALL || ch == MONITOR || ch == M_FIVE || ch == CHC ||
- ch == DARK || ch == UMODE_GO || ch == CHESSWATCHING ||
+ ch == DARK || ch == UMODE_GO || ch == CHESSWATCHING || ch == REVERSI ||
(!ch && (uin->chatid[0] == 1 || uin->chatid[0] == 3)) ||
uin->lockmode == M_FIVE || uin->lockmode == CHC) {
- if (ch == CHC || ch == M_FIVE || ch == UMODE_GO || ch == CHESSWATCHING) {
+ if (ch == CHC || ch == M_FIVE || ch == UMODE_GO ||
+ ch == CHESSWATCHING || ch == REVERSI) {
sock = make_connection_to_somebody(uin, 20);
if (sock < 0)
vmsg("無法建立連線");
@@ -1599,6 +1600,10 @@ my_talk(userinfo_t * uin, int fri_stat, char defact)
case SIG_GO:
gochess(msgsock, CHESS_MODE_WATCH);
break;
+
+ case SIG_REVERSI:
+ reversi(msgsock, CHESS_MODE_WATCH);
+ break;
}
}
}
@@ -1638,7 +1643,8 @@ my_talk(userinfo_t * uin, int fri_stat, char defact)
outc('\n');
}
}
- outs("要和他(她) (T)談天(F)下五子棋(P)鬥寵物(C)下象棋(D)下暗棋(G)下圍棋\n");
+ move(4, 0);
+ outs("要和他(她) (T)談天(F)下五子棋(P)鬥寵物(C)下象棋(D)下暗棋(G)下圍棋(R)下黑白棋");
getdata(5, 0, " (N)沒事找錯人了?[N] ", genbuf, 4, LCECHO);
}
@@ -1661,6 +1667,9 @@ my_talk(userinfo_t * uin, int fri_stat, char defact)
case 'g':
uin->sig = SIG_GO;
break;
+ case 'r':
+ uin->sig = SIG_REVERSI;
+ break;
case 'p':
reload_chicken();
getuser(uin->userid, &xuser);
@@ -1705,7 +1714,8 @@ my_talk(userinfo_t * uin, int fri_stat, char defact)
close(sock);
currutmp->sockactive = NA;
- if (uin->sig == SIG_CHC || uin->sig == SIG_GOMO || uin->sig == SIG_GO)
+ if (uin->sig == SIG_CHC || uin->sig == SIG_GOMO ||
+ uin->sig == SIG_GO || uin->sig == SIG_REVERSI)
ChessEstablishRequest(msgsock);
add_io(msgsock, 0);
@@ -1725,7 +1735,6 @@ my_talk(userinfo_t * uin, int fri_stat, char defact)
if (c == 'y') {
snprintf(save_page_requestor, sizeof(save_page_requestor),
"%s (%s)", uin->userid, uin->nickname);
- /* gomo */
switch (uin->sig) {
case SIG_DARK:
main_dark(msgsock, uin);
@@ -1742,6 +1751,9 @@ my_talk(userinfo_t * uin, int fri_stat, char defact)
case SIG_GO:
gochess(msgsock, CHESS_MODE_VERSUS);
break;
+ case SIG_REVERSI:
+ reversi(msgsock, CHESS_MODE_VERSUS);
+ break;
case SIG_TALK:
default:
do_talk(msgsock);
@@ -3164,7 +3176,7 @@ talkreply(void)
currutmp->destuid = uip->uid;
currstat = REPLY; /* 避免出現動畫 */
- is_chess = (sig == SIG_CHC || sig == SIG_GOMO || sig == SIG_GO);
+ is_chess = (sig == SIG_CHC || sig == SIG_GOMO || sig == SIG_GO || sig == SIG_REVERSI);
a = reply_connection_request(uip);
if (a < 0) {
@@ -3254,6 +3266,9 @@ talkreply(void)
case SIG_GO:
gochess(a, CHESS_MODE_VERSUS);
break;
+ case SIG_REVERSI:
+ reversi(a, CHESS_MODE_VERSUS);
+ break;
case SIG_TALK:
default:
do_talk(a);