set physics_ode_droppedweapon 1 "use ODE physics instead of simple physics for dropped weapons, requires physics_ode to be enabled"
set physics_ode_droppedweapon_damageforcescale 3 "how affected physical weapons are by damage"
-set physics_ode_droppedweapon_avelocity 2 "randomized anagular velocity given to the weapon when dropping"
// Audio track names (for old-style "cd loop NUMBER" usage)
set _cdtrack_first "1"
void thrown_wep_ode_think()
{
self.nextthink = time;
- self.alpha = self.owner.alpha; // apply fading of the original weapon
if(!self.owner.modelindex)
remove(self); // the real weapon is gone, remove this
}
{
entity wep2;
wep2 = spawn();
+ setsize(wep2, wep.mins, wep.maxs);
setorigin(wep2, wep.origin);
- setmodel(wep2, wep.model);
wep2.angles = wep.angles;
wep2.velocity = velo;
- wep2.avelocity_x = random() * autocvar_physics_ode_droppedweapon_avelocity;
- wep2.avelocity_y = random() * autocvar_physics_ode_droppedweapon_avelocity;
- wep2.avelocity_z = random() * autocvar_physics_ode_droppedweapon_avelocity;
wep2.classname = "droppedweapon2";
wep2.owner = wep;
- wep2.solid = SOLID_BBOX;
+ wep2.solid = SOLID_CORPSE;
wep2.movetype = MOVETYPE_PHYSICS;
wep2.takedamage = DAMAGE_AIM;
- wep2.colormap = wep.colormap;
- wep2.glowmod = wep.glowmod;
wep2.damageforcescale = autocvar_physics_ode_droppedweapon_damageforcescale;
- wep2.effects |= EF_NOMODELFLAGS; // disable the spinning
wep2.think = thrown_wep_ode_think;
wep2.nextthink = time;
- wep.model = "null"; // don't use setmodel, we want to keep the size
+ wep.effects |= EF_NOMODELFLAGS; // disable the spinning
wep.movetype = MOVETYPE_FOLLOW;
wep.aiment = wep2;
}