TPT: Fix WARP destroying DMND a9c198dd46

This commit is contained in:
Simon Robertshaw 2012-04-17 16:45:05 +01:00
parent 69e7dadcdf
commit db1ffd3208

View File

@ -2410,8 +2410,6 @@ void Simulation::update_particles_i(int start, int inc)
for (i=0; i<=parts_lastActiveIndex; i++) for (i=0; i<=parts_lastActiveIndex; i++)
if (parts[i].type) if (parts[i].type)
{ {
lx = parts[i].x;
ly = parts[i].y;
t = parts[i].type; t = parts[i].type;
if (t<0 || t>=PT_NUM) if (t<0 || t>=PT_NUM)
{ {
@ -2826,12 +2824,21 @@ void Simulation::update_particles_i(int start, int inc)
{ {
if ((*(ptypes[t].update_func))(this, i,x,y,surround_space,nt, parts, pmap)) if ((*(ptypes[t].update_func))(this, i,x,y,surround_space,nt, parts, pmap))
continue; continue;
else if (t==PT_WARP)
{
// Warp does some movement in its update func, update variables to avoid incorrect data in pmap
x = (int)(parts[i].x+0.5f);
y = (int)(parts[i].y+0.5f);
}
} }
#ifdef LUACONSOLE #ifdef LUACONSOLE
if(lua_el_mode[t]) if(lua_el_mode[t])
{ {
if(luacon_part_update(t,i,x,y,surround_space,nt)) if(luacon_part_update(t,i,x,y,surround_space,nt))
continue; continue;
// Need to update variables, in case they've been changed by Lua
x = (int)(parts[i].x+0.5f);
y = (int)(parts[i].y+0.5f);
} }
#endif #endif
if (legacy_enable)//if heat sim is off if (legacy_enable)//if heat sim is off