- bool distant_half_collide = false;
- bool full_collide = false;
-
- int i = 0, j=0;
- while (i < ups.size () && j < dps.size ())
- {
- if (abs (ups[i] - dps[j]) == 1)
- {
+ bool distant_half_collide = false;
+ bool full_collide = false;
+
+ for (vsize i = 0, j = 0; i < ups.size () && j < dps.size (); )
+ {
+ if (abs (ups[i] - dps[j]) == 1)
+ {
+ merge_possible = false;
+ if (ups[i] > dps[j])
+ close_half_collide = true;
+ else
+ distant_half_collide = true;
+ }
+ else if (ups[i] == dps[j])
+ full_collide = true;
+ else if (ups[i] > dps[0] && ups[i] < dps.back ())
+ merge_possible = false;
+ else if (dps[j] > ups[0] && dps[j] < ups.back ())