diff --git a/source/player/player.cpp b/source/player/player.cpp index 7ff32fd16..86fb708f3 100644 --- a/source/player/player.cpp +++ b/source/player/player.cpp @@ -377,6 +377,11 @@ Pos.vy=((Pos.vy-16)&0xfffffff0)+colHeight; } } +if(Pos.vx<16)Pos.vx=16; +else if(Pos.vx>m_mapEdge.vx)Pos.vx=m_mapEdge.vx; +if(Pos.vy<16)Pos.vy=16; +else if(Pos.vy>m_mapEdge.vy-16)Pos.vy=m_mapEdge.vy-16; + // Flashing.. if(m_invincibleFrameCount) { @@ -600,6 +605,8 @@ void CPlayer::setMapSize(DVECTOR _mapSize) { m_mapCameraEdges.vx=(_mapSize.vx-34)*MAP2D_BLOCKSTEPSIZE; // Made up numbers! :) (pkg) m_mapCameraEdges.vy=(_mapSize.vy-18)*MAP2D_BLOCKSTEPSIZE; + m_mapEdge.vx=_mapSize.vx*MAP2D_BLOCKSTEPSIZE; + m_mapEdge.vy=_mapSize.vy*MAP2D_BLOCKSTEPSIZE; } diff --git a/source/player/player.h b/source/player/player.h index 598d9c8a5..f440c0e73 100644 --- a/source/player/player.h +++ b/source/player/player.h @@ -265,6 +265,7 @@ private: // Various info about the current map class CLayerCollision *m_layerCollision; DVECTOR m_mapCameraEdges; + DVECTOR m_mapEdge; DVECTOR m_respawnPos; };