Make lua selection randline create a new selection

This commit is contained in:
Pasi Kallinen
2020-02-22 16:34:50 +02:00
parent b3f337bdf6
commit 6648ecfe04
3 changed files with 24 additions and 9 deletions

View File

@@ -486,6 +486,7 @@ lua_State *L;
x2 = (schar) luaL_checkinteger(L, 4);
y2 = (schar) luaL_checkinteger(L, 5);
roughness = (int) luaL_checkinteger(L, 6);
lua_pop(L, 5);
} else if (argc == 5 && lua_type(L, 1) == LUA_TNUMBER) {
x1 = (schar) luaL_checkinteger(L, 1);
y1 = (schar) luaL_checkinteger(L, 2);
@@ -502,8 +503,9 @@ lua_State *L;
get_location_coord(&x2, &y2, ANY_LOC,
g.coder ? g.coder->croom : NULL, SP_COORD_PACK(x2, y2));
(void) l_selection_clone(L);
sel = l_selection_check(L, 1);
selection_do_randline(x1, y1, x2, y2, roughness, 12, sel);
lua_settop(L, 1);
return 1;
}

View File

@@ -4474,14 +4474,8 @@ struct selectionvar *ov;
int mx, my;
int dx, dy;
if (rec < 1) {
if (rec < 1 || (x2 == x1 && y2 == y1))
return;
}
if ((x2 == x1) && (y2 == y1)) {
selection_setpoint(x1, y1, ov, 1);
return;
}
if (rough > max(abs(x2 - x1), abs(y2 - y1)))
rough = max(abs(x2 - x1), abs(y2 - y1));
@@ -4498,7 +4492,9 @@ struct selectionvar *ov;
} while ((mx > COLNO - 1 || mx < 0 || my < 0 || my > ROWNO - 1));
}
selection_setpoint(mx, my, ov, 1);
if (!selection_getpoint(mx, my, ov)) {
selection_setpoint(mx, my, ov, 1);
}
rough = (rough * 2) / 3;
@@ -4506,6 +4502,8 @@ struct selectionvar *ov;
selection_do_randline(x1, y1, mx, my, rough, rec, ov);
selection_do_randline(mx, my, x2, y2, rough, rec, ov);
selection_setpoint(x2, y2, ov, 1);
}
void