void D_ProcessEvents(void) { event_t *ev; while ((ev = D_PopEvent()) != NULL) { if (F_Responder(ev)) { continue; } if (MN_Responder(ev)) { continue; } G_Responder(ev); } }
void H2_ProcessEvents(void) { event_t *ev; for (;;) { ev = D_PopEvent(); if (ev == NULL) { break; } if (F_Responder(ev)) { continue; } if (MN_Responder(ev)) { continue; } G_Responder(ev); } }
// // G_Responder // Get info needed to make ticcmd_ts for the players. // BOOL G_Responder (event_t *ev) { // any other key pops up menu if in demos // [RH] But only if the key isn't bound to a "special" command if (gameaction == ga_nothing && (demoplayback || gamestate == GS_DEMOSCREEN)) { const char *cmd = C_GetBinding (ev->data1); if (ev->type == ev_keydown) { if (!cmd || ( strnicmp (cmd, "menu_", 5) && stricmp (cmd, "toggleconsole") && stricmp (cmd, "sizeup") && stricmp (cmd, "sizedown") && stricmp (cmd, "togglemap") && stricmp (cmd, "spynext") && stricmp (cmd, "chase") && stricmp (cmd, "+showscores") && stricmp (cmd, "bumpgamma") && stricmp (cmd, "screenshot"))) { S_Sound (CHAN_VOICE, "switches/normbutn", 1, ATTN_NONE); M_StartControlPanel (); return true; } else { return C_DoKey (ev); } } if (cmd && cmd[0] == '+') return C_DoKey (ev); return false; } if (gamestate == GS_LEVEL || gamestate == GS_INTERMISSION) { if (HU_Responder (ev)) return true; // chat ate the event if (ST_Responder (ev)) return true; // status window ate it if (!viewactive) if (AM_Responder (ev)) return true; // automap ate it } else if (gamestate == GS_FINALE) { if (F_Responder (ev)) return true; // finale ate the event } switch (ev->type) { case ev_keydown: if (C_DoKey (ev)) return true; break; case ev_keyup: C_DoKey (ev); break; // [Toke - Mouse] New mouse code case ev_mouse: zdoomsens = (float)(mouse_sensitivity / 10); if (mouse_type == 0) { if (dynres_state == 0) { mousex = ev->data2 * (mouse_sensitivity + 5) / 10; // [Toke - Mouse] Marriage of origonal and zdoom mouse code, functions like doom2.exe code mousey = ev->data3 * (mouse_sensitivity + 5) / 10; } else if (dynres_state == 1) { mousexleft = ev->data2; mousexleft = -mousexleft; mousex = pow((ev->data2 * (mouse_sensitivity + 5) / 10), dynresval); if (ev->data2 < 0) { mousexleft = pow((mousexleft * (mouse_sensitivity + 5) / 10), dynresval); mousex = -mousexleft; } mouseydown = ev->data3; mouseydown = -mouseydown; mousey = pow((ev->data3 * (mouse_sensitivity + 5) / 10), dynresval); if (ev->data3 < 0) { mouseydown = pow((mouseydown * (mouse_sensitivity + 5) / 10), dynresval); mousey = -mouseydown; } } } else if (mouse_type == 1) { if (dynres_state == 0) { mousex = ev->data2 * (zdoomsens); // [Toke - Mouse] Zdoom mouse code mousey = ev->data3 * (zdoomsens); } else if (dynres_state == 1) { mousexleft = ev->data2; mousexleft = -mousexleft; mousex = pow((ev->data2 * (zdoomsens)), dynresval); if (ev->data2 < 0) { mousexleft = pow((mousexleft * (zdoomsens)), dynresval); mousex = -mousexleft; } mouseydown = ev->data3; mouseydown = -mouseydown; mousey = pow((ev->data3 * (zdoomsens)), dynresval); if (ev->data3 < 0) { mouseydown = pow((mouseydown * (zdoomsens)), dynresval); mousey = -mouseydown; } } } if (displaymouse == 1) Printf(PRINT_MEDIUM, "(%d %d) ", mousex, mousey); break; case ev_joystick: joyxmove = ev->data2; joyymove = ev->data3; break; } // [RH] If the view is active, give the automap a chance at // the events *last* so that any bound keys get precedence. if (gamestate == GS_LEVEL && viewactive) return AM_Responder (ev); if (ev->type == ev_keydown || ev->type == ev_mouse || ev->type == ev_joystick) return true; else return false; }