Make lua selection randline create a new selection
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
14
src/sp_lev.c
14
src/sp_lev.c
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user