mirror of
https://github.com/blendogames/thirtyflightsofloving.git
synced 2025-01-18 22:41:49 +00:00
Fixed potential crash caused by infinite recursion in client footstep code.
This commit is contained in:
parent
c6c7e79b5a
commit
2efcb5a672
2 changed files with 15 additions and 8 deletions
|
@ -111,7 +111,7 @@ Since this is a replacement for plain Jane EV_FOOTSTEP, we already know
|
|||
the player is definitely on the ground when this is called.
|
||||
===============
|
||||
*/
|
||||
void CL_FootSteps (entity_state_t *ent, qboolean loud)
|
||||
void CL_FootSteps (entity_state_t *ent, qboolean loud, qboolean recursed)
|
||||
{
|
||||
trace_t tr;
|
||||
vec3_t end;
|
||||
|
@ -174,20 +174,25 @@ void CL_FootSteps (entity_state_t *ent, qboolean loud)
|
|||
volume = 1.0;
|
||||
break;
|
||||
default:
|
||||
if (cl_footstep_override->value && num_texsurfs)
|
||||
if (cl_footstep_override->value && num_texsurfs && !recursed)
|
||||
{
|
||||
int i;
|
||||
for (i=0; i<num_texsurfs; i++)
|
||||
if (strstr(tr.surface->name,tex_surf[i].tex) && tex_surf[i].step_id > 0)
|
||||
{
|
||||
tr.surface->flags &= ~SURF_STEPMASK;
|
||||
tr.surface->flags |= (SURF_METAL << (tex_surf[i].step_id - 1));
|
||||
CL_FootSteps (ent, loud); // start over
|
||||
CL_FootSteps (ent, loud, true); // start over
|
||||
return;
|
||||
}
|
||||
}
|
||||
tr.surface->flags |= SURF_STANDARD;
|
||||
CL_FootSteps (ent, loud); // start over
|
||||
return;
|
||||
// tr.surface->flags &= ~SURF_STEPMASK;
|
||||
// tr.surface->flags |= SURF_STANDARD;
|
||||
// CL_FootSteps (ent, loud, true); // start over
|
||||
// return;
|
||||
stepsound = clMedia.sfx_footsteps[r];
|
||||
volume = 1.0;
|
||||
break;
|
||||
}
|
||||
|
||||
if (loud)
|
||||
|
@ -227,11 +232,11 @@ void CL_EntityEvent (entity_state_t *ent)
|
|||
if (cl_footsteps->value)
|
||||
//Knightmare- Lazarus footsteps
|
||||
//S_StartSound (NULL, ent->number, CHAN_BODY, clMedia.sfx_footsteps[rand()&3], 1, ATTN_NORM, 0);
|
||||
CL_FootSteps (ent, false);
|
||||
CL_FootSteps (ent, false, false);
|
||||
break;
|
||||
case EV_LOUDSTEP:
|
||||
if (cl_footsteps->value)
|
||||
CL_FootSteps (ent, true);
|
||||
CL_FootSteps (ent, true, false);
|
||||
break;
|
||||
//end Knightmare
|
||||
case EV_FALLSHORT:
|
||||
|
|
|
@ -32,6 +32,8 @@ Changes as of v0.20 update 8:
|
|||
|
||||
- Fixed crash when rapidly pressing the Esc key during a map load.
|
||||
|
||||
- Fixed potential crash caused by infinite recursion in client footstep code.
|
||||
|
||||
- Fixed fatal error when too many alias models are loaded (such as many unique player models in a multiplayer game).
|
||||
|
||||
- Fixed light blooms killing performance if texture compression is enabled.
|
||||
|
|
Loading…
Reference in a new issue