From 50f9d7882f93716af8b7436e88d1da62f05e198b Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Sun, 4 Mar 2007 07:11:44 +0100 Subject: [PATCH] seperate code for entering chat mode Do not conveniently use same code as for leaving mode, to make distinct enter/leave keys possible. --- game.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/game.c b/game.c index 5e3f689..5779d84 100644 --- a/game.c +++ b/game.c @@ -319,8 +319,10 @@ void OneGame(void) { char *p; - if (key == 13) { - if (!(chatMode = !chatMode)) { + if (chatMode) { + if (key == 13) { + // enter text + chatMode = 0; if (chatText[0]) { Message("<\\%d%s\\7> %s", Players[me].team > 7 ? 7 : Players[me].team, @@ -331,20 +333,22 @@ void OneGame(void) } //say it else Messagetype(27, -1, NULL); //escape return; - } //leave chat mode - } //enter pressed (start/stop chat mode) - - if (chatMode) { - if (key == 27) //escape + } + else if (key == 27) //escape chatMode = 0; else if (key == 127 && chatText) //backspace chatText[strlen(chatText) - 1] = 0; - else if (key != 13 && strlen(chatText) < MSG_WIDTH-1) //text + else if (strlen(chatText) < MSG_WIDTH-1) //text chatText[strlen(chatText)] = key; Messagetype(key, strlen(chatText) - 1, chatText); return; } //key in chat mode + if (key == 13) { + chatMode = 1; + Messagetype(key, strlen(chatText) - 1, chatText); + } + if (!(p = strchr(keyTable, tolower(key)))) return; key = p - keyTable; if (Players[me].alive <= 0 && key != KT_quit) return; -- 2.30.0