diff --git a/src/elements/pbcn.cpp b/src/elements/pbcn.cpp index a6bbe5acc..aa4c33678 100644 --- a/src/elements/pbcn.cpp +++ b/src/elements/pbcn.cpp @@ -59,12 +59,19 @@ int update_PBCN(UPDATE_FUNC_ARGS) { } if (parts[i].ctype>0 && parts[i].ctypecreate_part(-1, x+rx, y+ry, parts[i].ctype); - if (r!=-1) { - parts[r].vx = rx*3; - parts[r].vy = ry*3; + for (rx=-1; rx<2; rx++) + { + for (ry = -1; ry < 2; ry++) + { + if (rx || ry) + { + int r = sim->create_part(-1, x + rx, y + ry, + parts[i].ctype); + if (r != -1) + { + parts[r].vx = rx * 3; + parts[r].vy = ry * 3; + } } } } diff --git a/src/elements/pcln.cpp b/src/elements/pcln.cpp index 86d67f65b..4fdffb6cf 100644 --- a/src/elements/pcln.cpp +++ b/src/elements/pcln.cpp @@ -49,12 +49,19 @@ int update_PCLN(UPDATE_FUNC_ARGS) { } if (parts[i].ctype>0 && parts[i].ctypecreate_part(-1, x+rx, y+ry, parts[i].ctype); - if (r!=-1) { - parts[r].vx = rx*3; - parts[r].vy = ry*3; + for (rx=-1; rx<2; rx++) + { + for (ry = -1; ry < 2; ry++) + { + if (rx || ry) + { + int r = sim->create_part(-1, x + rx, y + ry, + parts[i].ctype); + if (r != -1) + { + parts[r].vx = rx * 3; + parts[r].vy = ry * 3; + } } } }