summaryrefslogtreecommitdiff
path: root/src/simulation/Simulation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/simulation/Simulation.cpp')
-rw-r--r--src/simulation/Simulation.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp
index c6dec35..0a24539 100644
--- a/src/simulation/Simulation.cpp
+++ b/src/simulation/Simulation.cpp
@@ -2191,6 +2191,8 @@ int Simulation::try_move(int i, int x, int y, int nx, int ny)
e = eval_move(parts[i].type, nx, ny, &r);
if(parts[i].sld && r && parts[i].sld == parts[r>>8].sld)
return 1;
+ if(parts[i].sld && r && (elements[r&255].Properties & (TYPE_GAS | TYPE_ENERGY)))
+ return 2;
if(!e && r && parts[r>>8].sld) {
parts[r>>8].vx += parts[i].vx;
@@ -2910,6 +2912,8 @@ int Simulation::create_part(int p, int x, int y, int tv)
{
detach(i);
}
+ if(parts[p].sld)
+ unlink_solid(p);
i = p;
}