Some cleanup of the events API
- Add default name for wesnoth.game_events.add when it's a menu item - Add error message when both ID and name are empty
This commit is contained in:
parent
81d56508c7
commit
5001999e0b
1 changed files with 11 additions and 0 deletions
|
@ -3747,6 +3747,14 @@ int game_lua_kernel::intf_add_event(lua_State *L)
|
|||
bool repeat = !luaW_table_get_def(L, 1, "first_time_only", true), is_menu_item = luaW_table_get_def(L, 1, "menu_item", false);
|
||||
if(luaW_tableget(L, 1, "name")) {
|
||||
name = read_event_name(L, -1);
|
||||
} else if(is_menu_item) {
|
||||
if(id.empty()) {
|
||||
return luaL_argerror(L, 1, "non-empty id is required for a menu item");
|
||||
}
|
||||
name = "menu item " + id;
|
||||
}
|
||||
if(id.empty() && name.empty()) {
|
||||
return luaL_argerror(L, 1, "either a name or id is required");
|
||||
}
|
||||
auto new_handler = man.add_event_handler_from_lua(name, id, repeat, is_menu_item);
|
||||
if(new_handler.valid()) {
|
||||
|
@ -3814,6 +3822,9 @@ int game_lua_kernel::intf_add_event_simple(lua_State *L)
|
|||
game_events::manager & man = *game_state_.events_manager_;
|
||||
bool repeat = true;
|
||||
std::string name = read_event_name(L, 1), id;
|
||||
if(name.empty()) {
|
||||
return luaL_argerror(L, 1, "must not be empty");
|
||||
}
|
||||
if(is_menu_item) {
|
||||
id = name;
|
||||
name = "menu item " + name;
|
||||
|
|
Loading…
Add table
Reference in a new issue