really fix the remainders in loop edge mode
This commit is contained in:
parent
0b0c73647a
commit
15068552b5
@ -2406,9 +2406,9 @@ int Simulation::do_move(int i, int x, int y, float nxf, float nyf)
|
|||||||
bool x_ok = (nx >= CELL && nx < XRES-CELL);
|
bool x_ok = (nx >= CELL && nx < XRES-CELL);
|
||||||
bool y_ok = (ny >= CELL && ny < YRES-CELL);
|
bool y_ok = (ny >= CELL && ny < YRES-CELL);
|
||||||
if (!x_ok)
|
if (!x_ok)
|
||||||
nxf = remainder_p(nxf-CELL, XRES-CELL*2.0f)+CELL-.5f;
|
nxf = remainder_p(nxf-CELL+.5f, XRES-CELL*2.0f)+CELL-.5f;
|
||||||
if (!y_ok)
|
if (!y_ok)
|
||||||
nyf = remainder_p(nyf-CELL, YRES-CELL*2.0f)+CELL-.5f;
|
nyf = remainder_p(nyf-CELL+.5f, YRES-CELL*2.0f)+CELL-.5f;
|
||||||
nx = (int)(nxf+0.5f);
|
nx = (int)(nxf+0.5f);
|
||||||
ny = (int)(nyf+0.5f);
|
ny = (int)(nyf+0.5f);
|
||||||
|
|
||||||
@ -4079,9 +4079,9 @@ killed:
|
|||||||
bool x_ok = (fin_x >= CELL && fin_x < XRES-CELL);
|
bool x_ok = (fin_x >= CELL && fin_x < XRES-CELL);
|
||||||
bool y_ok = (fin_y >= CELL && fin_y < YRES-CELL);
|
bool y_ok = (fin_y >= CELL && fin_y < YRES-CELL);
|
||||||
if (!x_ok)
|
if (!x_ok)
|
||||||
fin_xf = remainder_p(fin_xf-CELL, XRES-CELL*2.0f)+CELL-.5f;
|
fin_xf = remainder_p(fin_xf-CELL+.5f, XRES-CELL*2.0f)+CELL-.5f;
|
||||||
if (!y_ok)
|
if (!y_ok)
|
||||||
fin_yf = remainder_p(fin_yf-CELL, YRES-CELL*2.0f)+CELL-.5f;
|
fin_yf = remainder_p(fin_yf-CELL+.5f, YRES-CELL*2.0f)+CELL-.5f;
|
||||||
fin_x = (int)(fin_xf+0.5f);
|
fin_x = (int)(fin_xf+0.5f);
|
||||||
fin_y = (int)(fin_yf+0.5f);
|
fin_y = (int)(fin_yf+0.5f);
|
||||||
}
|
}
|
||||||
@ -4132,12 +4132,12 @@ killed:
|
|||||||
int oldnx = nx, oldny = ny;
|
int oldnx = nx, oldny = ny;
|
||||||
if (!x_ok)
|
if (!x_ok)
|
||||||
{
|
{
|
||||||
parts[i].x = remainder_p(parts[i].x-CELL, XRES-CELL*2.0f)+CELL-.5f;
|
parts[i].x = remainder_p(parts[i].x-CELL+.5f, XRES-CELL*2.0f)+CELL-.5f;
|
||||||
nx = (int)((float)parts[i].x+0.5f);
|
nx = (int)((float)parts[i].x+0.5f);
|
||||||
}
|
}
|
||||||
if (!y_ok)
|
if (!y_ok)
|
||||||
{
|
{
|
||||||
parts[i].y = remainder_p(parts[i].y-CELL, YRES-CELL*2.0f)+CELL-.5f;
|
parts[i].y = remainder_p(parts[i].y-CELL+.5f, YRES-CELL*2.0f)+CELL-.5f;
|
||||||
ny = (int)((float)parts[i].y+0.5f);
|
ny = (int)((float)parts[i].y+0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user