BOOL CT_Responder (event_t *ev) { if (chatmodeon && ev->type == EV_GUI_Event) { if (ev->subtype == EV_GUI_KeyDown || ev->subtype == EV_GUI_KeyRepeat) { if (ev->data1 == '\r') { ShoveChatStr ((char *)ChatQueue, chatmodeon - 1); CT_Stop (); return true; } else if (ev->data1 == GK_ESCAPE) { CT_Stop (); return true; } else if (ev->data1 == '\b') { CT_BackSpace (); return true; } else if (ev->data1 == 'C' && (ev->data3 & GKM_CTRL)) { I_PutInClipboard ((char *)ChatQueue); return true; } else if (ev->data1 == 'V' && (ev->data3 & GKM_CTRL)) { char *clip = I_GetFromClipboard (); if (clip != NULL) { char *clip_p = clip; strtok (clip, "\n\r\b"); while (*clip_p) { CT_AddChar (*clip_p++); } delete[] clip; } } } else if (ev->subtype == EV_GUI_Char) { // send a macro if (ev->data2 && (ev->data1 >= '0' && ev->data1 <= '9')) { ShoveChatStr (*chat_macros[ev->data1 - '0'], chatmodeon - 1); CT_Stop (); } else { CT_AddChar (ev->data1); } return true; } } return false; }
bool CT_Responder (event_t *ev) { if (chatmodeon && ev->type == EV_GUI_Event) { if (ev->subtype == EV_GUI_KeyDown || ev->subtype == EV_GUI_KeyRepeat) { if (ev->data1 == '\r') { ShoveChatStr ((char *)ChatQueue, chatmodeon - 1); CT_Stop (); return true; } else if (ev->data1 == GK_ESCAPE) { CT_Stop (); return true; } else if (ev->data1 == '\b') { CT_BackSpace (); return true; } else if (ev->data1 == 'C' && (ev->data3 & GKM_CTRL)) { I_PutInClipboard ((char *)ChatQueue); return true; } else if (ev->data1 == 'V' && (ev->data3 & GKM_CTRL)) { CT_PasteChat(I_GetFromClipboard(false)); } } else if (ev->subtype == EV_GUI_Char) { // send a macro if (ev->data2 && (ev->data1 >= '0' && ev->data1 <= '9')) { ShoveChatStr (*chat_macros[ev->data1 - '0'], chatmodeon - 1); CT_Stop (); } else { CT_AddChar (char(ev->data1)); } return true; } #ifdef unix else if (ev->subtype == EV_GUI_MButtonDown) { CT_PasteChat(I_GetFromClipboard(true)); } #endif } return false; }
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; }