diff --git a/source/src/physics.cpp b/source/src/physics.cpp index 8ab36990..7e458b19 100644 --- a/source/src/physics.cpp +++ b/source/src/physics.cpp @@ -172,7 +172,7 @@ bool collide(physent *d, bool spawn, float drop, float rise) if(!plcollide(d, o, headspace, hi, lo)) return false; } - if(d!=player1) if(!plcollide(d, player1, headspace, hi, lo)) return false; + if(d!=player1 && !(d->type==ENT_BOUNCE && player1->inhandnade==((bounceent *)d))) if(!plcollide(d, player1, headspace, hi, lo)) return false; headspace -= 0.01f; mmcollide(d, hi, lo); // collide with map models diff --git a/source/src/weapon.cpp b/source/src/weapon.cpp index f9d40488..bbdc5f39 100644 --- a/source/src/weapon.cpp +++ b/source/src/weapon.cpp @@ -460,6 +460,7 @@ void thrownade(playerent *d, const vec &vel, bounceent *p) p->vel = vel; p->o.add(dir); p->o.add(d->o); + loopi(10) moveplayer(p, 10, true, 10); p->bouncestate = NADE_THROWED; d->thrownademillis = lastmillis; @@ -481,10 +482,6 @@ void thrownade(playerent *d, bounceent *p) thrownade(d, vel, p); } -// fixme release -VAR(grenadespeed, 0, 27, 100); -VAR(grenaderot, 0, 60, 100); - bounceent *new_nade(playerent *d, int millis = 0) { bounceent *p = newbounceent(); @@ -492,8 +489,8 @@ bounceent *new_nade(playerent *d, int millis = 0) p->millis = lastmillis; p->timetolife = 2000-millis; p->bouncestate = NADE_ACTIVATED; - p->maxspeed = (float)grenadespeed; - p->rotspeed = grenaderot/10.0f; + p->maxspeed = 27.0f; + p->rotspeed = 6.0f; d->inhandnade = p; d->thrownademillis = 0;