make last 3 arguments to sim.brush optional, for convenience

This commit is contained in:
jacob1 2017-04-17 23:27:01 -04:00
parent e9d80fe52a
commit e712a8dbec

View File

@ -1925,18 +1925,20 @@ int BrushClosure(lua_State * l)
int yield_x, yield_y; int yield_x, yield_y;
while (true) while (true)
{ {
if (!(y < sizeY)) return 0; if (!(y < sizeY))
return 0;
if (x < sizeX) if (x < sizeX)
{ {
bool yield_coords = false; bool yield_coords = false;
if(bitmap[(y*sizeX)+x] && (positionX+(x-radiusX) >= 0 && positionY+(y-radiusY) >= 0 && positionX+(x-radiusX) < XRES && positionY+(y-radiusY) < YRES)) if (bitmap[(y*sizeX)+x] && (positionX+(x-radiusX) >= 0 && positionY+(y-radiusY) >= 0 && positionX+(x-radiusX) < XRES && positionY+(y-radiusY) < YRES))
{ {
yield_coords = true; yield_coords = true;
yield_x = positionX+(x-radiusX); yield_x = positionX+(x-radiusX);
yield_y = positionY+(y-radiusY); yield_y = positionY+(y-radiusY);
} }
x++; x++;
if (yield_coords) break; if (yield_coords)
break;
} }
else else
{ {
@ -1957,12 +1959,22 @@ int BrushClosure(lua_State * l)
int LuaScriptInterface::simulation_brush(lua_State * l) int LuaScriptInterface::simulation_brush(lua_State * l)
{ {
// see Simulation::ToolBrush int argCount = lua_gettop(l);
int positionX = luaL_checkint(l, 1); int positionX = luaL_checkint(l, 1);
int positionY = luaL_checkint(l, 2); int positionY = luaL_checkint(l, 2);
int brushradiusX = luaL_checkint(l, 3); int brushradiusX, brushradiusY;
int brushradiusY = luaL_checkint(l, 4); if (argCount >= 4 || !luacon_model->GetBrush())
int brushID = luaL_checkint(l, 5); {
brushradiusX = luaL_checkint(l, 3);
brushradiusY = luaL_checkint(l, 4);
}
else
{
ui::Point size = luacon_model->GetBrush()->GetSize();
brushradiusX = size.X;
brushradiusY = size.Y;
}
int brushID = luaL_optint(l, 5, luacon_model->GetBrushID());
vector<Brush *> brushList = luacon_model->GetBrushList(); vector<Brush *> brushList = luacon_model->GetBrushList();
if (brushID < 0 || brushID >= (int)brushList.size()) if (brushID < 0 || brushID >= (int)brushList.size())