Flare Grenades

Light This Up!

All we're doing here is turning your grenades into flares, very simple and probably useless, but they do look cool.
Everything we're going to modify is right in g_weapon.c, so open it up and scroll down to the fire_grenade2 function (that's for handgrenades).   Take out the lines that are
pink and add in the lines that are blue.

void fire_grenade2 (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, float timer, float damage_radius, qboolean held)
{
    edict_t    *grenade;
    vec3_t    dir;
    vec3_t    forward, right, up;

    vectoangles (aimdir, dir);
    AngleVectors (dir, forward, right, up);

    grenade = G_Spawn();
    VectorCopy (start, grenade->s.origin);
    VectorScale (aimdir, speed, grenade->velocity);
    VectorMA (grenade->velocity, 200 + crandom() * 10.0, up, grenade->velocity);
    VectorMA (grenade->velocity, crandom() * 10.0, right, grenade->velocity);
    VectorSet (grenade->avelocity, 300, 300, 300);
    grenade->movetype = MOVETYPE_BOUNCE;
    grenade->clipmask = MASK_SHOT;
    grenade->solid = SOLID_BBOX;
   
grenade->s.effects |= EF_GRENADE;

    grenade->s.effects |= EF_BLASTER;

    VectorClear (grenade->mins);
    VectorClear (grenade->maxs);
    grenade->s.modelindex = gi.modelindex ("models/objects/grenade2/tris.md2");
    grenade->owner = self;
    grenade->touch = Grenade_Touch;
    grenade->nextthink = level.time + timer;
    grenade->think = Grenade_Explode;
    grenade->dmg = damage;
    grenade->dmg_radius = damage_radius;
    grenade->classname = "hgrenade";

   
grenade->s.effects |= EF_COLOR_SHELL;
    grenade->s.renderfx |= RF_SHELL_GREEN;
    grenade->s.effects |= EF_BFG|EF_TELEPORTER;


    if (held)
        grenade->spawnflags = 3;
    else
        grenade->spawnflags = 1;
    grenade->s.sound = gi.soundindex("weapons/hgrenc1b.wav");

    if (timer <= 0.0)
        Grenade_Explode (grenade);
    else
    {
        gi.sound (self, CHAN_WEAPON, gi.soundindex ("weapons/hgrent1a.wav"), 1, ATTN_NORM, 0);
        gi.linkentity (grenade);
    }
}

All we did was add in a color shell effect, that also emits green light, and we gave the grenade a teleporter particle stream. Fin.

Tutorial by Willi
Back to Quake Style - Tutorials