Fixed g_swap_speed behaviour with extreme values

When its value was between 0 and 1, rounded down to 0.
Did the same when bigger than 65535.
Both cases locked up the entire weapon animation.
This commit is contained in:
Jaime Moreira 2023-08-26 19:08:26 -04:00
parent 9316bd0ba2
commit 118b78256f

View file

@ -605,7 +605,9 @@ Weapon_Generic(edict_t *ent, int FRAME_ACTIVATE_LAST, int FRAME_FIRE_LAST,
int *fire_frames, void (*fire)(edict_t *ent)) int *fire_frames, void (*fire)(edict_t *ent))
{ {
int n; int n;
const unsigned short int change_speed = (g_swap_speed->value > 0)?(unsigned short int)g_swap_speed->value:1; const unsigned short int change_speed = (g_swap_speed->value > 1)?
(g_swap_speed->value < USHRT_MAX)? (unsigned short int)g_swap_speed->value : 1
: 1;
if (!ent || !fire_frames || !fire) if (!ent || !fire_frames || !fire)
{ {