boolean CT_Responder(event_t * ev) { char *macro; int sendto; if (!netgame) { return false; } if (ev->data1 == KEY_RALT) { altdown = (ev->type == ev_keydown); return false; } if (ev->data1 == KEY_RSHIFT) { shiftdown = (ev->type == ev_keydown); return false; } if (gamestate != GS_LEVEL || ev->type != ev_keydown) { return false; } if (!chatmodeon) { sendto = 0; if (ev->data1 == key_multi_msg) { sendto = CT_PLR_ALL; } else if (ev->data1 == key_multi_msgplayer[0]) { sendto = CT_PLR_BLUE; } else if (ev->data1 == key_multi_msgplayer[1]) { sendto = CT_PLR_RED; } else if (ev->data1 == key_multi_msgplayer[2]) { sendto = CT_PLR_YELLOW; } else if (ev->data1 == key_multi_msgplayer[3]) { sendto = CT_PLR_GREEN; } else if (ev->data1 == key_multi_msgplayer[4]) { sendto = CT_PLR_PLAYER5; } else if (ev->data1 == key_multi_msgplayer[5]) { sendto = CT_PLR_PLAYER6; } else if (ev->data1 == key_multi_msgplayer[6]) { sendto = CT_PLR_PLAYER7; } else if (ev->data1 == key_multi_msgplayer[7]) { sendto = CT_PLR_PLAYER8; } if (sendto == 0 || (sendto != CT_PLR_ALL && !playeringame[sendto - 1]) || sendto == consoleplayer + 1) { return false; } CT_queueChatChar(sendto); chatmodeon = true; return true; } else { if (altdown) { if (ev->data1 >= '0' && ev->data1 <= '9') { if (ev->data1 == '0') { // macro 0 comes after macro 9 ev->data1 = '9' + 1; } macro = chat_macros[ev->data1 - '1']; CT_queueChatChar(KEY_ENTER); //send old message CT_queueChatChar(chat_dest[consoleplayer]); // chose the dest. while (*macro) { CT_queueChatChar(toupper(*macro++)); } CT_queueChatChar(KEY_ENTER); //send it off... CT_Stop(); return true; } } if (ev->data1 == KEY_ENTER) { CT_queueChatChar(KEY_ENTER); usearti = false; CT_Stop(); return true; } else if (ev->data1 == KEY_ESCAPE) { CT_queueChatChar(CT_ESCAPE); CT_Stop(); return true; } else if (ev->data1 == KEY_BACKSPACE) { CT_queueChatChar(KEY_BACKSPACE); return true; } else if (ValidChatChar(ev->data2)) { CT_queueChatChar(toupper(ev->data2)); return true; } } return false; }
boolean CT_Responder(event_t *ev) { char *macro; int sendto; if(!netgame) { return false; } if(ev->data1 == KEY_LALT || ev->data2 == KEY_RALT) { altdown = (ev->type == ev_keydown); return false; } if(ev->data1 == KEY_RSHIFT) { shiftdown = (ev->type == ev_keydown); return false; } if(ev->type != ev_keydown) { return false; } if(!chatmodeon) { sendto = 0; if(ev->data1 == CT_KEY_ALL) { sendto = CT_PLR_ALL; } else if(ev->data1 == CT_KEY_GREEN) { sendto = CT_PLR_GREEN; } else if(ev->data1 == CT_KEY_YELLOW) { sendto = CT_PLR_YELLOW; } else if(ev->data1 == CT_KEY_RED) { sendto = CT_PLR_RED; } else if(ev->data1 == CT_KEY_BLUE) { sendto = CT_PLR_BLUE; } if(sendto == 0 || (sendto != CT_PLR_ALL && !playeringame[sendto-1]) || sendto == consoleplayer+1) { return false; } CT_queueChatChar(sendto); chatmodeon = true; return true; } else { if(altdown) { if(ev->data1 >= '0' && ev->data1 <= '9') { if(ev->data1 == '0') { // macro 0 comes after macro 9 ev->data1 = '9'+1; } macro = chat_macros[ev->data1-'1']; CT_queueChatChar(KEY_ENTER); //send old message CT_queueChatChar(chat_dest[consoleplayer]); // chose the dest. while(*macro) { CT_queueChatChar(toupper(*macro++)); } CT_queueChatChar(KEY_ENTER); //send it off... CT_Stop(); return true; } } if(ev->data1 == KEY_ENTER) { CT_queueChatChar(KEY_ENTER); CT_Stop(); return true; } else if(ev->data1 == KEY_ESCAPE) { CT_queueChatChar(CT_ESCAPE); CT_Stop(); return true; } else if(ev->data1 >= 'a' && ev->data1 <= 'z') { CT_queueChatChar(ev->data1-32); return true; } else if(shiftdown) { if(ev->data1 == '1') { CT_queueChatChar('!'); return true; } else if(ev->data1 == '/') { CT_queueChatChar('?'); return true; } } else { if(ev->data1 == ' ' || ev->data1 == ',' || ev->data1 == '.' || (ev->data1 >= '0' && ev->data1 <= '9') || ev->data1 == '\'' || ev->data1 == KEY_BACKSPACE || ev->data1 == '-' || ev->data1 == '=') { CT_queueChatChar(ev->data1); return true; } } } return false; }