Fix the crash when too much debris or gibs is shown

This commit is contained in:
Yamagi Burmeister 2011-10-11 14:13:17 +00:00
parent b49bec2143
commit 71d6ee0935

View file

@ -2,6 +2,8 @@
#include "g_local.h"
int gibsthisframe = 0;
int lastgibframe = 0;
/*QUAKED func_group (0 0 0) ?
Used to group brushes together just for editor convenience.
@ -121,6 +123,24 @@ void ThrowGib (edict_t *self, char *gibname, int damage, int type)
vec3_t size;
float vscale;
if (!self || !gibname)
{
return;
}
if (level.framenum > lastgibframe)
{
gibsthisframe = 0;
lastgibframe = level.framenum;
}
gibsthisframe++;
if (gibsthisframe > 20)
{
return;
}
gib = G_Spawn();
VectorScale (self->size, 0.5, size);
@ -264,6 +284,24 @@ void ThrowDebris (edict_t *self, char *modelname, float speed, vec3_t origin)
edict_t *chunk;
vec3_t v;
if (!self || !modelname)
{
return;
}
if (level.framenum > lastgibframe)
{
gibsthisframe = 0;
lastgibframe = level.framenum;
}
gibsthisframe++;
if (gibsthisframe > 20)
{
return;
}
chunk = G_Spawn();
VectorCopy (origin, chunk->s.origin);
gi.setmodel (chunk, modelname);