seperate code for entering chat mode
authorMischa POSLAWSKY <netris@shiar.org>
Sun, 4 Mar 2007 06:11:44 +0000 (07:11 +0100)
committerMischa POSLAWSKY <netris@shiar.org>
Sun, 4 Mar 2007 06:11:44 +0000 (07:11 +0100)
Do not conveniently use same code as for leaving mode, to make distinct
enter/leave keys possible.

game.c

diff --git a/game.c b/game.c
index 5e3f689a5b64cfaf62a4074804dac04c399bc41a..5779d84c2ca89f71e7d9f72a04c91ac5a59ff218 100644 (file)
--- 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;