| Stick to it Code to be Deleted or Commented out
 g_missile.c
 
 Have a look in g_missile.c for the fire_grenade function, as we showed you in one of our previous tutorials, you'll see the checks the game makes when firing a off a grenade, which will look like that below, now all you have to do to make them sticky is to comment out the line that tells them to bounce about, which is marked in red.
 
 /*
 =================
 fire_grenade
 =================
 */
 gentity_t *fire_grenade (gentity_t *self, vec3_t start, vec3_t dir) {
 gentity_t *bolt;
 VectorNormalize (dir);
 bolt = G_Spawn();
 bolt->classname = "grenade";
 bolt->nextthink = level.time + 2500;
 bolt->think = G_ExplodeMissile;
 bolt->s.eType = ET_MISSILE;
 bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN;
 bolt->s.weapon = WP_GRENADE_LAUNCHER;
 //	bolt->s.eFlags = EF_BOUNCE_HALF;
 bolt->r.ownerNum = self->s.number;
 bolt->parent = self;
 bolt->damage = 100;
 bolt->splashDamage = 100;
 bolt->splashRadius = 150;
 bolt->methodOfDeath = MOD_GRENADE;
 bolt->splashMethodOfDeath = MOD_GRENADE_SPLASH;
 bolt->clipmask = MASK_SHOT;
 bolt->s.pos.trType = TR_GRAVITY;
 bolt->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME;
 VectorCopy( start, bolt->s.pos.trBase );
 VectorScale( dir, 700, bolt->s.pos.trDelta );
 SnapVector( bolt->s.pos.trDelta ); // save net bandwidth
 VectorCopy (start, bolt->r.currentOrigin);
 return bolt;
 }
 |