Fix wrong index update when removing CV points
This commit is contained in:
		@@ -1975,17 +1975,15 @@ static void ed_curve_delete_selected(Object *obedit)
 | 
			
		||||
		next = nu->next;
 | 
			
		||||
		type = 0;
 | 
			
		||||
		if (nu->type == CU_BEZIER) {
 | 
			
		||||
			int delta = 0;
 | 
			
		||||
			bezt = nu->bezt;
 | 
			
		||||
			for (a = 0; a < nu->pntsu; a++) {
 | 
			
		||||
				if (BEZSELECTED_HIDDENHANDLES(cu, bezt)) {
 | 
			
		||||
					memmove(bezt, bezt + 1, (nu->pntsu - a - 1) * sizeof(BezTriple));
 | 
			
		||||
					keyIndex_delBezt(editnurb, bezt + delta);
 | 
			
		||||
					keyIndex_delBezt(editnurb, bezt);
 | 
			
		||||
					keyIndex_updateBezt(editnurb, bezt + 1, bezt, nu->pntsu - a - 1);
 | 
			
		||||
					nu->pntsu--;
 | 
			
		||||
					a--;
 | 
			
		||||
					type = 1;
 | 
			
		||||
					delta++;
 | 
			
		||||
				}
 | 
			
		||||
				else {
 | 
			
		||||
					bezt++;
 | 
			
		||||
@@ -2001,18 +1999,16 @@ static void ed_curve_delete_selected(Object *obedit)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		else if (nu->pntsv == 1) {
 | 
			
		||||
			int delta = 0;
 | 
			
		||||
			bp = nu->bp;
 | 
			
		||||
 | 
			
		||||
			for (a = 0; a < nu->pntsu; a++) {
 | 
			
		||||
				if (bp->f1 & SELECT) {
 | 
			
		||||
					memmove(bp, bp + 1, (nu->pntsu - a - 1) * sizeof(BPoint));
 | 
			
		||||
					keyIndex_delBP(editnurb, bp + delta);
 | 
			
		||||
					keyIndex_delBP(editnurb, bp);
 | 
			
		||||
					keyIndex_updateBP(editnurb, bp + 1, bp, nu->pntsu - a - 1);
 | 
			
		||||
					nu->pntsu--;
 | 
			
		||||
					a--;
 | 
			
		||||
					type = 1;
 | 
			
		||||
					delta++;
 | 
			
		||||
				}
 | 
			
		||||
				else {
 | 
			
		||||
					bp++;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user