diff --git a/source/src/entity.h b/source/src/entity.h index f72d9d80..c3a48e60 100644 --- a/source/src/entity.h +++ b/source/src/entity.h @@ -127,8 +127,8 @@ struct physent onfloor = onladder = inwater = jumpnext = crouching = trycrouch = stuck = false; } - virtual void oncollision() {}; - virtual void onmoved(const vec &dist) {}; + virtual void oncollision() {} + virtual void onmoved(const vec &dist) {} }; struct dynent : physent // animated ent diff --git a/source/src/physics.cpp b/source/src/physics.cpp index 620befbb..93838792 100644 --- a/source/src/physics.cpp +++ b/source/src/physics.cpp @@ -468,7 +468,13 @@ void moveplayer(physent *pl, int moveres, bool local, int curtime) } pl->o == oo; } - if(pl->type==ENT_CAMERA) return; + if(pl->type==ENT_CAMERA || (pl->type==ENT_PLAYER && pl->state==CS_DEAD)) + { + pl->o.x -= f*d.x; + pl->o.y -= f*d.y; + pl->o.z -= f*d.z; + break; + } if(pl->type==ENT_PLAYER && hitplayer) { float dx = hitplayer->o.x-pl->o.x, dy = hitplayer->o.y-pl->o.y, mag = sqrtf(dx*dx+dy*dy);