val = 0;
if (impulsedown && !impulseup)
+ {
if (down)
val = 0.5; // pressed and held this frame
else
val = 0; // I_Error ();
+ }
if (impulseup && !impulsedown)
+ {
if (down)
val = 0; // I_Error ();
else
val = 0; // released this frame
+ }
if (!impulsedown && !impulseup)
+ {
if (down)
val = 1.0; // held the entire frame
else
val = 0; // up the entire frame
+ }
if (impulsedown && impulseup)
+ {
if (down)
val = 0.75; // released and re-pressed this frame
else
val = 0.25; // pressed and released this frame
+ }
key->state &= 1; // clear impulses