mirror of
https://github.com/yquake2/rogue.git
synced 2024-11-22 20:31:50 +00:00
Fix the crash when too much debris or gib is thrown
This commit is contained in:
parent
5acee518b5
commit
4e31aed406
1 changed files with 39 additions and 0 deletions
39
src/g_misc.c
39
src/g_misc.c
|
@ -2,6 +2,9 @@
|
|||
|
||||
#include "g_local.h"
|
||||
|
||||
int gibsthisframe = 0;
|
||||
int lastgibframe = 0;
|
||||
|
||||
extern void M_WorldEffects (edict_t *ent);
|
||||
|
||||
/*QUAKED func_group (0 0 0) ?
|
||||
|
@ -122,6 +125,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);
|
||||
|
@ -274,6 +295,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);
|
||||
|
|
Loading…
Reference in a new issue