Variable pev->oldbuttons itself is checked when jumping. Am not sure is it checked anywhere for IN_USE, but I'd rather be safe than sorry.
No, I recommend PreThink pre.
In any way both of our methods will work. Except that my is based on "better safe than sorry", and wont make glitches for various plugins.
Well, blocking emit_sound will just block emitted sound of the player.
You mean m_afButtonPressed can be checked only if oldbuttons don't contain IN_USE, and release if old do contain.
__________________
Skill and no annoying bugs with fixed balance issues is my goal!