// Respond to keyboard input events, intercept cheats. // [RH] Cheats eat the last keypress used to trigger them bool ST_Responder (event_t *ev) { bool eat = false; if (!allcheats) { cheatseq_t *cheats; int numcheats; cheats = DoomCheats; numcheats = countof(DoomCheats); return CheatCheckList(ev, cheats, numcheats); } else { static cheatseq_t *cheatlists[] = { DoomCheats, SpecialCheats }; static int counts[] = { countof(DoomCheats), countof(SpecialCheats) }; for (size_t i=0; i<countof(cheatlists); i++) { if (CheatCheckList(ev, cheatlists[i], counts[i])) return true; } } return false; }
// Respond to keyboard input events, intercept cheats. // [RH] Cheats eat the last keypress used to trigger them bool ST_Responder (event_t *ev) { bool eat = false; if (!allcheats) { cheatseq_t *cheats; int numcheats; switch (gameinfo.gametype) { case GAME_Doom: cheats = DoomCheats; numcheats = countof(DoomCheats); break; case GAME_Heretic: cheats = HereticCheats; numcheats = countof(HereticCheats); break; case GAME_Hexen: cheats = HexenCheats; numcheats = countof(HexenCheats); break; case GAME_Strife: cheats = StrifeCheats; numcheats = countof(StrifeCheats); break; case GAME_Chex: cheats = ChexCheats; numcheats = countof(ChexCheats); break; default: return false; } return CheatCheckList(ev, cheats, numcheats); } else { static cheatseq_t *cheatlists[] = { DoomCheats, HereticCheats, HexenCheats, StrifeCheats, ChexCheats, SpecialCheats }; static int counts[] = { countof(DoomCheats), countof(HereticCheats)-2, countof(HexenCheats), countof(StrifeCheats), countof(ChexCheats)-1, countof(SpecialCheats) }; for (size_t i=0; i<countof(cheatlists); i++) { if (CheatCheckList(ev, cheatlists[i], counts[i])) return true; } } return false; }