Catch C++ exceptions in dfhack.buildings.setSize

develop
Alexander Gavrilov 2012-09-18 20:45:59 +04:00
parent 57b72831ca
commit a4799a384b
1 changed files with 6 additions and 2 deletions

@ -1084,7 +1084,9 @@ static int buildings_getCorrectSize(lua_State *state)
return 5; return 5;
} }
static int buildings_setSize(lua_State *state) namespace {
int buildings_setSize(lua_State *state)
{ {
auto bld = Lua::CheckDFObject<df::building>(state, 1); auto bld = Lua::CheckDFObject<df::building>(state, 1);
df::coord2d size(luaL_optint(state, 2, 1), luaL_optint(state, 3, 1)); df::coord2d size(luaL_optint(state, 2, 1), luaL_optint(state, 3, 1));
@ -1105,11 +1107,13 @@ static int buildings_setSize(lua_State *state)
return 1; return 1;
} }
}
static const luaL_Reg dfhack_buildings_funcs[] = { static const luaL_Reg dfhack_buildings_funcs[] = {
{ "findAtTile", buildings_findAtTile }, { "findAtTile", buildings_findAtTile },
{ "findCivzonesAt", buildings_findCivzonesAt }, { "findCivzonesAt", buildings_findCivzonesAt },
{ "getCorrectSize", buildings_getCorrectSize }, { "getCorrectSize", buildings_getCorrectSize },
{ "setSize", buildings_setSize }, { "setSize", &Lua::CallWithCatchWrapper<buildings_setSize> },
{ NULL, NULL } { NULL, NULL }
}; };