diff --git a/src/g_main.c b/src/g_main.c index 31ca8a4..8054ecd 100644 --- a/src/g_main.c +++ b/src/g_main.c @@ -386,7 +386,7 @@ ExitLevel(void) } gibsthisframe = 0; - lastgibframe = 0; + debristhisframe = 0; } /* @@ -401,6 +401,9 @@ G_RunFrame(void) level.framenum++; level.time = level.framenum * FRAMETIME; + gibsthisframe = 0; + debristhisframe = 0; + /* choose a client for monsters to target this frame */ AI_SetSightClient(); diff --git a/src/g_misc.c b/src/g_misc.c index 28d3ad7..6920934 100644 --- a/src/g_misc.c +++ b/src/g_misc.c @@ -1,7 +1,7 @@ #include "header/local.h" +int debristhisframe; int gibsthisframe; -int lastgibframe; /* * QUAKED func_group (0 0 0) ? @@ -139,15 +139,9 @@ ThrowGib(edict_t *self, char *gibname, int damage, int type) vec3_t size; float vscale; - if (level.framenum > lastgibframe) - { - gibsthisframe = 0; - lastgibframe = level.framenum; - } - gibsthisframe++; - if (gibsthisframe > 20) + if (gibsthisframe > MAX_GIBS) { return; } @@ -166,6 +160,7 @@ ThrowGib(edict_t *self, char *gibname, int damage, int type) gib->flags |= FL_NO_KNOCKBACK; gib->takedamage = DAMAGE_YES; gib->die = gib_die; + gib->health = 250; if (type == GIB_ORGANIC) { @@ -293,15 +288,9 @@ ThrowDebris(edict_t *self, char *modelname, float speed, vec3_t origin) edict_t *chunk; vec3_t v; - if (level.framenum > lastgibframe) - { - gibsthisframe = 0; - lastgibframe = level.framenum; - } + debristhisframe++; - gibsthisframe++; - - if (gibsthisframe > 20) + if (debristhisframe > MAX_DEBRIS) { return; } @@ -325,6 +314,7 @@ ThrowDebris(edict_t *self, char *modelname, float speed, vec3_t origin) chunk->classname = "debris"; chunk->takedamage = DAMAGE_YES; chunk->die = debris_die; + chunk->health = 250; gi.linkentity(chunk); } diff --git a/src/header/local.h b/src/header/local.h index 0649461..1a06440 100644 --- a/src/header/local.h +++ b/src/header/local.h @@ -110,6 +110,10 @@ typedef enum AMMO_SLUGS } ammo_t; +/* Maximum debris / gibs per frame */ +#define MAX_GIBS 20 +#define MAX_DEBRIS 20 + /* deadflag */ #define DEAD_NO 0 #define DEAD_DYING 1 @@ -446,8 +450,8 @@ extern spawn_temp_t st; extern int sm_meat_index; extern int snd_fry; +extern int debristhisframe; extern int gibsthisframe; -extern int lastgibframe; /* means of death */