ply[nr].x > lev.right - 1)
{
struct PLAYER ply_last = ply[nr];
+ int direction = (ply[nr].x < lev.left ? -1 : 1);
int dx = ply[nr].x - ply[nr].prev_x;
- ply[nr].x = (ply[nr].x < lev.left ? lev.right - 1 : lev.left);
+ ply[nr].x += -direction * lev.width;
ply[nr].prev_x = ply[nr].x - dx;
if (!lev.infinite_true)
{
int dy = ply[nr].y - ply[nr].prev_y;
- ply[nr].y += (ply[nr].x == lev.left ? 1 : -1);
+ ply[nr].y += direction;
ply[nr].prev_y = ply[nr].y - dy;
}
if (ply[i].x < lev.left ||
ply[i].x > lev.right - 1)
{
- ply[i].x = (ply[i].x < lev.left ? lev.right - 1 : lev.left);
+ int direction = (ply[i].x < lev.left ? -1 : 1);
+
+ ply[i].x += -direction * lev.width;
if (!lev.infinite_true)
- ply[i].y += (ply[i].x == lev.left ? 1 : -1);
+ ply[i].y += direction;
game.centered_player_nr_next = i;
game.set_centered_player = TRUE;