As I sead, look for the FireWeapon function in g_weapon.c. There’s a big switch statement for each of the weapons. Look for WP_GARAND:
case WP_GARAND_SCOPE:
Bullet_Fire( ent, GARANDSCOPE_SPREAD*aimSpreadScale, GARANDSCOPE_DAMAGE, qfalse );
break;
case WP_GARAND:
aimSpreadScale = 1.0f;
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
break;
case WP_SATCHEL_DET:
if( G_ExplodeSatchels( ent ) ) {
ent->client->ps.ammo[WP_SATCHEL_DET] = 0;
ent->client->ps.ammoclip[WP_SATCHEL_DET] = 0;
ent->client->ps.ammoclip[WP_SATCHEL] = 1;
G_AddEvent( ent, EV_NOAMMO, 0 );
}
break;
Copy Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse ); as many times as the number of pieces of buckshot you want (let’s say 11 - that’s what Q3 has):
case WP_GARAND_SCOPE:
Bullet_Fire( ent, GARANDSCOPE_SPREAD*aimSpreadScale, GARANDSCOPE_DAMAGE, qfalse );
break;
case WP_GARAND:
aimSpreadScale = 1.0f;
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
Bullet_Fire( ent, GARAND_SPREAD*aimSpreadScale, GARAND_DAMAGE, qfalse );
break;
case WP_SATCHEL_DET:
if( G_ExplodeSatchels( ent ) ) {
ent->client->ps.ammo[WP_SATCHEL_DET] = 0;
ent->client->ps.ammoclip[WP_SATCHEL_DET] = 0;
ent->client->ps.ammoclip[WP_SATCHEL] = 1;
G_AddEvent( ent, EV_NOAMMO, 0 );
}
break;
Now, find the GARAND_SPREAD define and change it to suit your needs (Q3’s DEFAULT_SHOTGUN_SPREAD is 700).