Contains code common to the application and game lua kernels which cannot or should not go into the lua kernel base files. More...
#include "scripting/lua_common.hpp"
#include "config.hpp"
#include "scripting/push_check.hpp"
#include "scripting/lua_unit.hpp"
#include "tstring.hpp"
#include "variable.hpp"
#include "log.hpp"
#include "gettext.hpp"
#include "lua_jailbreak_exception.hpp"
#include "game_display.hpp"
#include <cstring>
#include <iterator>
#include <new>
#include <string>
#include "lua/lauxlib.h"
#include "lua/lua.h"
Go to the source code of this file.
Namespaces | |
lua_common | |
Macros | |
#define | LOG_LUA LOG_STREAM(info, log_scripting_lua) |
#define | WRN_LUA LOG_STREAM(warn, log_scripting_lua) |
#define | ERR_LUA LOG_STREAM(err, log_scripting_lua) |
#define | return_misformed() do { lua_settop(L, initial_top); return false; } while (0) |
Typedefs | |
typedef std::pair< vconfig::all_children_iterator, vconfig::all_children_iterator > | lua_common::vconfig_child_range |
Functions | |
static int | lua_common::impl_gettext (lua_State *L) |
Creates a t_string object (__call metamethod). More... | |
static int | lua_common::impl_gettext_tostr (lua_State *L) |
int | lua_common::intf_textdomain (lua_State *L) |
Creates an interface for gettext. More... | |
static void | lua_common::tstring_concat_aux (lua_State *L, t_string &dst, int src) |
Converts a Lua value at position src and appends it to dst. More... | |
static int | lua_common::impl_tstring_concat (lua_State *L) |
Appends a scalar to a t_string object (__concat metamethod). More... | |
static int | lua_common::impl_tstring_len (lua_State *L) |
static int | lua_common::impl_tstring_collect (lua_State *L) |
Destroys a t_string object before it is collected (__gc metamethod). More... | |
static int | lua_common::impl_tstring_lt (lua_State *L) |
static int | lua_common::impl_tstring_le (lua_State *L) |
static int | lua_common::impl_tstring_eq (lua_State *L) |
static int | lua_common::impl_tstring_tostring (lua_State *L) |
Converts a t_string object to a string (__tostring metamethod); that is, performs a translation. More... | |
static int | lua_common::impl_vconfig_get (lua_State *L) |
Gets the parsed field of a vconfig object (_index metamethod). More... | |
static int | lua_common::impl_vconfig_size (lua_State *L) |
Returns the number of a child of a vconfig object. More... | |
static int | lua_common::impl_vconfig_collect (lua_State *L) |
Destroys a vconfig object before it is collected (__gc metamethod). More... | |
static int | lua_common::impl_vconfig_pairs_iter (lua_State *L) |
Iterate through the attributes of a vconfig. More... | |
static int | lua_common::impl_vconfig_pairs_collect (lua_State *L) |
Destroy a vconfig pairs iterator. More... | |
static int | lua_common::impl_vconfig_pairs (lua_State *L) |
Construct an iterator to iterate through the attributes of a vconfig. More... | |
static int | lua_common::impl_vconfig_ipairs_iter (lua_State *L) |
Iterate through the subtags of a vconfig. More... | |
static int | lua_common::impl_vconfig_ipairs_collect (lua_State *L) |
Destroy a vconfig ipairs iterator. More... | |
static int | lua_common::impl_vconfig_ipairs (lua_State *L) |
Construct an iterator to iterate through the subtags of a vconfig. More... | |
int | lua_common::intf_tovconfig (lua_State *L) |
Creates a vconfig containing the WML table. More... | |
std::string | lua_common::register_gettext_metatable (lua_State *L) |
Adds the gettext metatable. More... | |
std::string | lua_common::register_tstring_metatable (lua_State *L) |
Adds the tstring metatable. More... | |
std::string | lua_common::register_vconfig_metatable (lua_State *L) |
Adds the vconfig metatable. More... | |
void * | operator new (std::size_t sz, lua_State *L) |
void | operator delete (void *, lua_State *L) |
bool | luaW_getmetafield (lua_State *L, int idx, const char *key) |
Like luaL_getmetafield, but returns false if key is an empty string or begins with two underscores. More... | |
void | luaW_pushvconfig (lua_State *L, const vconfig &cfg) |
Pushes a vconfig on the top of the stack. More... | |
void | luaW_pushtstring (lua_State *L, const t_string &v) |
Pushes a t_string on the top of the stack. More... | |
void | luaW_pushscalar (lua_State *L, const config::attribute_value &v) |
Converts an attribute value into a Lua object pushed at the top of the stack. More... | |
bool | luaW_toscalar (lua_State *L, int index, config::attribute_value &v) |
Converts the value at the top of the stack to an attribute value. More... | |
bool | luaW_totstring (lua_State *L, int index, t_string &str) |
Converts a scalar to a translatable string. More... | |
t_string | luaW_checktstring (lua_State *L, int index) |
Converts a scalar to a translatable string. More... | |
bool | luaW_iststring (lua_State *L, int index) |
void | luaW_filltable (lua_State *L, const config &cfg) |
Converts a config object to a Lua table. More... | |
void | luaW_pushlocation (lua_State *L, const map_location &ml) |
Converts a map location object to a Lua table pushed at the top of the stack. More... | |
bool | luaW_tolocation (lua_State *L, int index, map_location &loc) |
Converts an optional table or pair of integers to a map location object. More... | |
map_location | luaW_checklocation (lua_State *L, int index) |
Converts an optional table or pair of integers to a map location object. More... | |
void | luaW_pushconfig (lua_State *L, const config &cfg) |
Converts a config object to a Lua table pushed at the top of the stack. More... | |
bool | luaW_toconfig (lua_State *L, int index, config &cfg) |
Converts an optional table or vconfig to a config object. More... | |
config | luaW_checkconfig (lua_State *L, int index) |
Converts an optional table or vconfig to a config object. More... | |
config | luaW_checkconfig (lua_State *L, int index, const vconfig *&vcfg) |
Like the two-argument version, but if it was a vconfig, also returns a pointer to that vconfig. More... | |
bool | luaW_tovconfig (lua_State *L, int index, vconfig &vcfg) |
Gets an optional vconfig from either a table or a userdata. More... | |
vconfig | luaW_checkvconfig (lua_State *L, int index, bool allow_missing) |
Gets an optional vconfig from either a table or a userdata. More... | |
bool | luaW_getglobal (lua_State *L, const std::vector< std::string > &path) |
Pushes the value found by following the variadic names (char *), if the value is not nil. More... | |
bool | luaW_toboolean (lua_State *L, int n) |
bool | luaW_pushvariable (lua_State *L, variable_access_const &v) |
bool | luaW_checkvariable (lua_State *L, variable_access_create &v, int n) |
bool | luaW_tableget (lua_State *L, int index, const char *key) |
utils::string_view | luaW_tostring (lua_State *L, int index) |
utils::string_view | luaW_tostring_or_default (lua_State *L, int index, utils::string_view def) |
void | chat_message (const std::string &caption, const std::string &msg) |
Displays a message in the chat window. More... | |
void | push_error_handler (lua_State *L) |
int | luaW_pcall_internal (lua_State *L, int nArgs, int nRets) |
bool | luaW_pcall (lua_State *L, int nArgs, int nRets, bool allow_wml_error) |
Calls a Lua function stored below its nArgs arguments at the top of the stack. More... | |
int | luaW_type_error (lua_State *L, int narg, const char *tname) |
int | luaW_type_error (lua_State *L, int narg, const char *kpath, const char *tname) |
Variables | |
static const char | gettextKey [] = "gettext" |
static const char | vconfigKey [] = "vconfig" |
static const char | vconfigpairsKey [] = "vconfig pairs" |
static const char | vconfigipairsKey [] = "vconfig ipairs" |
static const char | tstringKey [] = "translatable string" |
static const char | executeKey [] = "err" |
static lg::log_domain | log_scripting_lua ("scripting/lua") |
Contains code common to the application and game lua kernels which cannot or should not go into the lua kernel base files.
Currently contains implementation functions related to vconfig and gettext, also some macros to assist in writing C lua callbacks.
Definition in file lua_common.cpp.
#define ERR_LUA LOG_STREAM(err, log_scripting_lua) |
Definition at line 54 of file lua_common.cpp.
Referenced by luaW_pcall().
#define LOG_LUA LOG_STREAM(info, log_scripting_lua) |
Definition at line 52 of file lua_common.cpp.
#define return_misformed | ( | ) | do { lua_settop(L, initial_top); return false; } while (0) |
Definition at line 739 of file lua_common.cpp.
Referenced by luaW_toconfig().
#define WRN_LUA LOG_STREAM(warn, log_scripting_lua) |
Definition at line 53 of file lua_common.cpp.
Referenced by luaW_checkvariable(), and luaW_pushvariable().
void chat_message | ( | const std::string & | caption, |
const std::string & | msg | ||
) |
Displays a message in the chat window.
Definition at line 998 of file lua_common.cpp.
References display_chat_manager::add_chat_message(), game_display::get_chat_manager(), game_display::get_singleton(), and events::chat_handler::MESSAGE_PUBLIC.
Referenced by luaW_getglobal(), and luaW_pcall().
Converts an optional table or vconfig to a config object.
Definition at line 819 of file lua_common.cpp.
References luaW_toconfig(), and luaW_type_error().
Referenced by game_lua_kernel::cfun_builtin_effect(), impl_context_backend(), impl_unit_attack_match(), impl_unit_attack_set(), impl_unit_attacks_set(), intf_add_modification(), game_lua_kernel::intf_add_sound_source(), lua_gui2::intf_add_widget_definition(), intf_append_ai(), lua_wml::intf_clone_wml(), intf_create_attack(), game_lua_kernel::intf_create_side(), intf_create_unit(), intf_default_generate(), intf_default_generate_height_map(), game_lua_kernel::intf_find_vacant_tile(), game_lua_kernel::intf_fire_event(), lua_stringx::intf_format(), intf_invoke_synced_command(), intf_modify_ai(), game_lua_kernel::intf_put_recall_unit(), game_lua_kernel::intf_put_unit(), intf_remove_modifications(), intf_set_dialog_canvas(), intf_set_music(), intf_show_dialog(), intf_switch_ai(), lua_wml::intf_wml_diff(), lua_wml::intf_wml_equal(), lua_wml::intf_wml_interpolate(), lua_wml::intf_wml_matches_filter(), lua_wml::intf_wml_merge(), lua_wml::intf_wml_patch(), lua_wml::intf_wml_tostring(), lua_check_impl::lua_check(), luaW_checkconfig(), lua_gui2::show_message_dialog(), and lua_gui2::show_story().
Like the two-argument version, but if it was a vconfig, also returns a pointer to that vconfig.
Definition at line 827 of file lua_common.cpp.
References luaL_testudata(), luaW_checkconfig(), p, and vconfigKey.
map_location luaW_checklocation | ( | lua_State * | L, |
int | index | ||
) |
Converts an optional table or pair of integers to a map location object.
Definition at line 722 of file lua_common.cpp.
References luaW_tolocation(), and luaW_type_error().
Referenced by ai::ai_attack(), ai::ai_move(), ai::ai_stopunit_select(), impl_slocs_set(), impl_unit_set(), game_lua_kernel::intf_add_tile_overlay(), game_lua_kernel::intf_find_cost_map(), game_lua_kernel::intf_find_path(), game_lua_kernel::intf_find_reach(), game_lua_kernel::intf_find_vacant_tile(), game_lua_kernel::intf_fire_wml_menu_item(), game_lua_kernel::intf_float_label(), game_lua_kernel::intf_get_fog_or_shroud(), game_lua_kernel::intf_get_terrain(), intf_get_terrain(), game_lua_kernel::intf_get_village_owner(), game_lua_kernel::intf_highlight_hex(), game_lua_kernel::intf_match_location(), mapgen_gamemap::intf_mg_terrain_mask(), game_lua_kernel::intf_remove_tile_overlay(), game_lua_kernel::intf_scroll_to_tile(), game_lua_kernel::intf_select_hex(), game_lua_kernel::intf_select_unit(), game_lua_kernel::intf_set_terrain(), intf_set_terrain(), game_lua_kernel::intf_set_village_owner(), game_lua_kernel::intf_teleport(), game_lua_kernel::intf_terrain_mask(), intf_unit_resistance(), lua_check_impl::lua_check(), and luaW_to_locationset().
Converts a scalar to a translatable string.
Definition at line 620 of file lua_common.cpp.
References luaW_totstring(), and luaW_type_error().
Referenced by intf_deprecated_message(), game_lua_kernel::intf_float_label(), lua_stringx::intf_format(), lua_stringx::intf_format_list(), game_lua_kernel::intf_message(), game_lua_kernel::intf_set_end_campaign_text(), lua_check_impl::lua_check(), lua_gui2::show_message_box(), lua_gui2::show_popup_dialog(), and lua_gui2::show_story().
bool luaW_checkvariable | ( | lua_State * | L, |
variable_access_create & | v, | ||
int | n | ||
) |
Definition at line 923 of file lua_common.cpp.
References variable_info< V >::as_container(), variable_info< V >::as_scalar(), config::clear(), variable_info< V >::get_error_message(), LUA_TBOOLEAN, LUA_TNUMBER, lua_tonumber, lua_tostring, LUA_TSTRING, LUA_TTABLE, LUA_TUSERDATA, lua_type(), lua_typename(), luaL_testudata(), luaW_toboolean(), luaW_toconfig(), luaW_type_error(), tstringKey, and WRN_LUA.
Referenced by impl_unit_variables_set(), game_lua_kernel::intf_set_variable(), and luaW_getglobal().
Gets an optional vconfig from either a table or a userdata.
L | the pointer to the lua interpreter. |
index | the location in the current lua execution stack to look at. |
allow_missing | true if missing values are allowed; the function then returns an unconstructed vconfig. |
Definition at line 863 of file lua_common.cpp.
References luaW_tovconfig(), luaW_type_error(), vconfig::null(), and vconfig::unconstructed_vconfig().
Referenced by game_lua_kernel::cfun_wml_action(), cfun_wml_condition(), lua_common::impl_vconfig_ipairs(), lua_common::impl_vconfig_ipairs_iter(), lua_common::impl_vconfig_pairs(), lua_common::impl_vconfig_pairs_iter(), game_lua_kernel::intf_add_event(), game_lua_kernel::intf_add_tile_overlay(), game_lua_kernel::intf_add_time_area(), game_lua_kernel::intf_color_adjust(), game_lua_kernel::intf_end_level(), intf_eval_conditional(), game_lua_kernel::intf_gamestate_inspector(), game_lua_kernel::intf_get_locations(), game_lua_kernel::intf_get_recall_units(), game_lua_kernel::intf_get_sides(), game_lua_kernel::intf_get_units(), game_lua_kernel::intf_get_villages(), game_lua_kernel::intf_label(), game_lua_kernel::intf_match_location(), game_lua_kernel::intf_match_side(), game_lua_kernel::intf_match_unit(), game_lua_kernel::intf_print(), game_lua_kernel::intf_redraw(), game_lua_kernel::intf_replace_schedule(), game_lua_kernel::intf_set_menu_item(), and lua_common::intf_tovconfig().
Converts a config object to a Lua table.
The destination table should be at the top of the stack on entry. It is still at the top on exit.
Definition at line 639 of file lua_common.cpp.
References config::all_children_range(), config::attribute_range(), lua_checkstack(), lua_createtable(), LUA_MINSTACK, lua_newtable, lua_pushstring(), lua_rawseti(), lua_setfield(), luaW_filltable(), and luaW_pushscalar().
Referenced by luaW_filltable(), luaW_pushconfig(), and luaW_pushvariable().
bool luaW_getglobal | ( | lua_State * | L, |
const std::vector< std::string > & | path | ||
) |
Pushes the value found by following the variadic names (char *), if the value is not nil.
Definition at line 871 of file lua_common.cpp.
References lua_isnil, lua_istable, lua_pop, lua_pushglobaltable, lua_pushlstring(), lua_rawget(), lua_remove, and s.
Referenced by game_lua_kernel::apply_effect(), game_lua_kernel::custom_command(), game_lua_kernel::game_lua_kernel(), impl_side_get(), lua_stringx::impl_str_index(), lua_widget::impl_widget_get(), lua_kernel_base::interactive_run(), intf_invoke_synced_command(), game_lua_kernel::intf_scroll(), lua_kernel_base::load_core(), game_lua_kernel::load_game(), lua_kernel_base::lua_kernel_base(), luaW_getglobal(), game_lua_kernel::mouse_over_hex_callback(), push_error_handler(), lua_units::register_attacks_metatables(), lua_common::register_tstring_metatable(), game_lua_kernel::run_event(), game_lua_kernel::run_filter(), game_lua_kernel::run_wml_action(), game_lua_kernel::run_wml_conditional(), game_lua_kernel::save_game(), game_lua_kernel::select_hex_callback(), and WIDGET_SETTER().
bool luaW_getmetafield | ( | lua_State * | L, |
int | idx, | ||
const char * | key | ||
) |
Like luaL_getmetafield, but returns false if key is an empty string or begins with two underscores.
Definition at line 512 of file lua_common.cpp.
References luaL_getmetafield(), and n.
Referenced by impl_animator_get(), impl_music_get(), impl_terainmap_get(), impl_track_get(), and impl_unit_attack_get().
bool luaW_iststring | ( | lua_State * | L, |
int | index | ||
) |
Definition at line 628 of file lua_common.cpp.
References lua_isstring(), lua_isuserdata(), luaL_testudata(), and tstringKey.
Referenced by game_lua_kernel::intf_allow_end_turn(), and lua_stringx::intf_str_format().
bool luaW_pcall | ( | lua_State * | L, |
int | nArgs, | ||
int | nRets, | ||
bool | allow_wml_error = false |
||
) |
Calls a Lua function stored below its nArgs arguments at the top of the stack.
L | the pointer to the lua interpreter. |
nArgs | |
nRets | LUA_MULTRET for unbounded return values. |
allow_wml_error | controls where any stack traces are output. |
Definition at line 1034 of file lua_common.cpp.
References chat_message(), e, ERR_LUA, lua_pop, lua_tostring, luaW_pcall_internal(), and lg::wml_error().
Referenced by game_lua_kernel::apply_effect(), ai::call_lua_filter_fcn(), lua_pathfind_cost_calculator::cost(), game_lua_kernel::custom_command(), lua_kernel_base::get_attribute_names(), ai::lua_ai_action_handler::handle(), intf_do_unsynced(), intf_invoke_synced_command(), game_lua_kernel::intf_scroll(), game_lua_kernel::intf_skip_messages(), game_lua_kernel::load_game(), luaW_getglobal(), game_lua_kernel::mouse_over_hex_callback(), game_lua_kernel::run_event(), game_lua_kernel::run_filter(), game_lua_kernel::run_wml_action(), game_lua_kernel::run_wml_conditional(), game_lua_kernel::save_game(), game_lua_kernel::select_hex_callback(), and ai::lua_ai_context::update_state().
int luaW_pcall_internal | ( | lua_State * | L, |
int | nArgs, | ||
int | nRets | ||
) |
Definition at line 1011 of file lua_common.cpp.
References executeKey, lua_getfield(), lua_gettop(), lua_insert, lua_pcall, LUA_REGISTRYINDEX, lua_remove, and lua_jailbreak_exception::rethrow().
Referenced by luaW_getglobal(), luaW_pcall(), and lua_kernel_base::protected_call().
Converts a config object to a Lua table pushed at the top of the stack.
Definition at line 730 of file lua_common.cpp.
References lua_newtable, and luaW_filltable().
Referenced by game_lua_kernel::apply_effect(), ai::cfun_ai_get_leader_goal(), game_lua_kernel::custom_command(), ai::lua_object< T >::from_type(), ai::lua_ai_action_handler::handle(), impl_context_accessor(), game_lua_kernel::impl_current_get(), impl_race_get(), game_lua_kernel::impl_theme_item(), impl_unit_type_get(), lua_common::impl_vconfig_get(), lua_wml::intf_clone_wml(), game_lua_kernel::intf_get_all_vars(), intf_get_era(), intf_get_resource(), game_lua_kernel::intf_get_sound_source(), intf_get_traits(), intf_invoke_synced_command(), lua_wml::intf_load_wml(), lua_wml::intf_parse_wml(), intf_synchronize_choice(), lua_wml::intf_wml_diff(), lua_wml::intf_wml_interpolate(), lua_wml::intf_wml_merge(), lua_wml::intf_wml_patch(), game_lua_kernel::load_game(), lua_check_impl::lua_push(), mapgen_lua_kernel::run_generator(), lua_kernel_base::run_lua_tag(), application_lua_kernel::thread::run_script(), ai::lua_ai_context::set_arguments(), and ai::lua_ai_context::set_persistent_data().
void luaW_pushlocation | ( | lua_State * | L, |
const map_location & | ml | ||
) |
Converts a map location object to a Lua table pushed at the top of the stack.
Definition at line 662 of file lua_common.cpp.
References lua_createtable(), lua_pushinteger(), lua_rawseti(), map_location::wml_x(), and map_location::wml_y().
Referenced by ai::cfun_ai_get_targets(), ai::lua_object< T >::from_type(), impl_side_get(), impl_slocs_get(), lua_map_location::intf_get_adjacent_tiles(), lua_map_location::intf_get_direction(), lua_map_location::intf_rotate_right_around_center(), game_lua_kernel::intf_select_hex(), lua_map_location::intf_vector_diff(), lua_map_location::intf_vector_negation(), lua_map_location::intf_vector_sum(), lua_check_impl::lua_push(), luaW_pushfaivariant(), ai::push_attack_analysis(), ai::push_move_map(), ai::push_movements(), special_locations_index(), and special_locations_next().
void luaW_pushscalar | ( | lua_State * | L, |
const config::attribute_value & | v | ||
) |
Converts an attribute value into a Lua object pushed at the top of the stack.
Definition at line 563 of file lua_common.cpp.
References config_attribute_value::apply_visitor().
Referenced by impl_preferences_get(), lua_common::impl_vconfig_get(), lua_common::impl_vconfig_pairs_iter(), luaW_filltable(), and luaW_pushvariable().
Pushes a t_string on the top of the stack.
Definition at line 533 of file lua_common.cpp.
References b, d, i, lua_pushboolean(), lua_pushinteger(), lua_pushnil(), lua_pushnumber(), lua_pushstring(), luaL_setmetatable(), luaW_pushtstring(), s, and tstringKey.
Referenced by lua_common::impl_gettext(), game_lua_kernel::intf_get_terrain_info(), game_lua_kernel::intf_get_time_of_day(), lua_check_impl::lua_push(), and luaW_pushtstring().
bool luaW_pushvariable | ( | lua_State * | L, |
variable_access_const & | v | ||
) |
Definition at line 895 of file lua_common.cpp.
References variable_info< V >::as_container(), variable_info< V >::as_scalar(), variable_info< V >::exists_as_attribute(), variable_info< V >::exists_as_container(), variable_info< V >::get_error_message(), lua_newtable, lua_pushnil(), luaW_filltable(), luaW_pushscalar(), and WRN_LUA.
Referenced by impl_unit_variables_get(), mapgen_lua_kernel::intf_get_variable(), game_lua_kernel::intf_get_variable(), and luaW_getglobal().
Pushes a vconfig on the top of the stack.
Definition at line 527 of file lua_common.cpp.
References luaL_setmetatable(), and vconfigKey.
Referenced by lua_common::impl_vconfig_get(), lua_common::impl_vconfig_ipairs_iter(), lua_wml::intf_clone_wml(), lua_common::intf_tovconfig(), game_lua_kernel::run_wml_action(), and game_lua_kernel::run_wml_conditional().
bool luaW_tableget | ( | lua_State * | L, |
int | index, | ||
const char * | key | ||
) |
Definition at line 966 of file lua_common.cpp.
References lua_absindex(), lua_gettable(), lua_isnoneornil, lua_pop, and lua_pushstring().
Referenced by mapgen_gamemap::intf_mg_terrain_mask(), lua_stringx::intf_str_map_split(), lua_stringx::intf_str_split(), game_lua_kernel::intf_terrain_mask(), luaW_getglobal(), read_rules_vector(), and filter_impl::~filter_impl().
bool luaW_toboolean | ( | lua_State * | L, |
int | n | ||
) |
Definition at line 890 of file lua_common.cpp.
References lua_toboolean().
Referenced by ai::ai_move(), ai::call_lua_filter_fcn(), game_lua_kernel::cfun_builtin_effect(), cfun_exec_candidate_action(), impl_add_animation(), ai::impl_ai_get(), impl_unit_status_set(), intf_add_modification(), intf_advance_unit(), game_lua_kernel::intf_allow_end_turn(), game_lua_kernel::intf_allow_undo(), game_lua_kernel::intf_delay(), game_lua_kernel::intf_find_cost_map(), intf_find_path(), game_lua_kernel::intf_find_reach(), game_lua_kernel::intf_get_time_of_day(), lua_fileops::intf_have_file(), lua_wml::intf_load_wml(), game_lua_kernel::intf_lock_view(), game_lua_kernel::intf_log(), intf_music_add(), game_lua_kernel::intf_put_unit(), game_lua_kernel::intf_redraw(), game_lua_kernel::intf_scroll_to_tile(), game_lua_kernel::intf_select_hex(), game_lua_kernel::intf_select_unit(), game_lua_kernel::intf_set_end_campaign_credits(), game_lua_kernel::intf_set_terrain(), game_lua_kernel::intf_set_village_owner(), game_lua_kernel::intf_skip_messages(), lua_stringx::intf_str_paren_split(), game_lua_kernel::intf_teleport(), game_lua_kernel::intf_terrain_mask(), game_lua_kernel::intf_toggle_fog(), intf_unit_resistance(), game_lua_kernel::intf_zoom(), ai::lua_ai_load::lua_ai_load(), lua_check_impl::lua_check(), lua_check_impl::lua_to_or_default(), luaW_checkvariable(), luaW_getglobal(), luaW_toscalar(), read_rules_vector(), game_lua_kernel::run_filter(), game_lua_kernel::run_wml_conditional(), lua_gui2::show_menu(), lua_gui2::show_message_box(), ai::lua_object< T >::to_type(), and WIDGET_SETTER().
Converts an optional table or vconfig to a config object.
L | the pointer to the lua interpreter. |
index | stack position of the table. |
cfg | the config to write the data to. |
Definition at line 742 of file lua_common.cpp.
References config::add_child(), i, lua_absindex(), lua_checkstack(), lua_gettop(), lua_istable, LUA_MINSTACK, lua_next(), lua_pop, lua_pushnil(), lua_rawgeti(), lua_rawlen(), lua_settop(), LUA_TNIL, LUA_TNONE, LUA_TNUMBER, lua_tostring, LUA_TSTRING, LUA_TTABLE, LUA_TUSERDATA, lua_type(), luaL_testudata(), luaW_toconfig(), luaW_toscalar(), return_misformed, config_attribute_value::str(), config::valid_attribute(), config::valid_tag(), and vconfigKey.
Referenced by mapgen_lua_kernel::create_scenario(), ai::lua_ai_context::get_arguments(), ai::lua_ai_context::get_persistent_data(), impl_context_accessor(), impl_music_set(), game_lua_kernel::intf_log_replay(), intf_modify_ai_old(), game_lua_kernel::intf_scroll(), game_lua_kernel::intf_skip_messages(), lua_wml::intf_wml_valid(), luaW_checkconfig(), luaW_checkvariable(), luaW_toconfig(), luaW_tovconfig(), game_lua_kernel::save_game(), lua_gui2::show_message_dialog(), and ai::lua_object< T >::to_type().
bool luaW_tolocation | ( | lua_State * | L, |
int | index, | ||
map_location & | loc | ||
) |
Converts an optional table or pair of integers to a map location object.
L | the pointer to the lua interpreter. |
index | stack position of the table or first integer. |
loc | the location to write to. |
Definition at line 673 of file lua_common.cpp.
References lua_absindex(), lua_checkstack(), lua_getfield(), lua_isnoneornil, lua_isnumber(), lua_istable, lua_isuserdata(), LUA_MINSTACK, lua_pop, lua_rawgeti(), lua_remove, lua_tonumber, lua_tonumberx(), luaW_tounit(), luaW_tovconfig(), map_location::set_wml_x(), map_location::set_wml_y(), and vconfig::unconstructed_vconfig().
Referenced by impl_add_animation(), lua_map_location::intf_distance_between(), game_lua_kernel::intf_erase_unit(), game_lua_kernel::intf_fire_event(), lua_map_location::intf_get_adjacent_tiles(), lua_map_location::intf_get_direction(), lua_map_location::intf_get_in_basis_N_NE(), lua_map_location::intf_get_relative_dir(), game_lua_kernel::intf_get_time_of_day(), game_lua_kernel::intf_get_unit(), game_lua_kernel::intf_get_units(), game_lua_kernel::intf_match_unit(), game_lua_kernel::intf_put_unit(), lua_map_location::intf_rotate_right_around_center(), lua_map_location::intf_tiles_adjacent(), intf_unit_defense(), intf_unit_jamming_cost(), intf_unit_movement_cost(), intf_unit_vision_cost(), lua_map_location::intf_vector_diff(), lua_map_location::intf_vector_negation(), lua_map_location::intf_vector_sum(), load_fake_units(), lua_check_impl::lua_to_or_default(), luaW_checklocation(), and luaW_tofaivariant().
bool luaW_toscalar | ( | lua_State * | L, |
int | index, | ||
config::attribute_value & | v | ||
) |
Converts the value at the top of the stack to an attribute value.
Definition at line 568 of file lua_common.cpp.
References LUA_TBOOLEAN, LUA_TNUMBER, lua_tonumber, lua_tostring, LUA_TSTRING, LUA_TUSERDATA, lua_type(), luaL_testudata(), luaW_toboolean(), and tstringKey.
Referenced by impl_preferences_set(), and luaW_toconfig().
utils::string_view luaW_tostring | ( | lua_State * | L, |
int | index | ||
) |
Definition at line 978 of file lua_common.cpp.
References lua_tolstring(), and luaL_error().
Referenced by game_lua_kernel::intf_terrain_mask(), lua_check_impl::lua_check(), luaW_getglobal(), read_rules_vector(), and filter_impl::~filter_impl().
utils::string_view luaW_tostring_or_default | ( | lua_State * | L, |
int | index, | ||
utils::string_view | def | ||
) |
Definition at line 988 of file lua_common.cpp.
References lua_tolstring().
Referenced by lua_check_impl::lua_to_or_default(), and luaW_getglobal().
Converts a scalar to a translatable string.
Definition at line 595 of file lua_common.cpp.
References LUA_TBOOLEAN, LUA_TNUMBER, lua_toboolean(), lua_tostring, LUA_TSTRING, LUA_TUSERDATA, lua_type(), luaL_testudata(), and tstringKey.
Referenced by impl_add_animation(), game_lua_kernel::intf_allow_end_turn(), intf_synchronize_choice(), intf_synchronize_choices(), luaW_checktstring(), luaW_tofaivariant(), and lua_gui2::show_message_dialog().
Gets an optional vconfig from either a table or a userdata.
Definition at line 836 of file lua_common.cpp.
References LUA_TNIL, LUA_TNONE, LUA_TTABLE, LUA_TUSERDATA, lua_type(), luaL_testudata(), luaW_toconfig(), and vconfigKey.
Referenced by game_lua_kernel::intf_find_cost_map(), luaW_checkvconfig(), luaW_tofaivariant(), luaW_tolocation(), and ai::lua_object< T >::to_type().
int luaW_type_error | ( | lua_State * | L, |
int | narg, | ||
const char * | tname | ||
) |
Definition at line 1075 of file lua_common.cpp.
References lua_pushfstring(), luaL_argerror(), luaL_typename, and wfl::msg().
Referenced by ai::cfun_ai_get_suitable_keep(), impl_add_animation(), impl_unit_attacks_get(), impl_unit_attacks_len(), impl_unit_attacks_set(), impl_unit_status_get(), impl_unit_status_set(), impl_unit_variables_get(), impl_unit_variables_set(), lua_formula_bridge::intf_compile_formula(), intf_mg_get_locations(), intf_unit_defense(), intf_unit_jamming_cost(), intf_unit_movement_cost(), intf_unit_vision_cost(), luaW_check_mgfilter(), luaW_check_slocs(), LuaW_checkcolor(), luaW_checkconfig(), luaW_checklocation(), luaW_checkterrainmap(), luaW_checktstring(), luaW_checkvariable(), luaW_checkvconfig(), luaW_getglobal(), lua_common::tstring_concat_aux(), unit_show_error(), and WIDGET_SETTER().
int luaW_type_error | ( | lua_State * | L, |
int | narg, | ||
const char * | kpath, | ||
const char * | tname | ||
) |
Definition at line 1083 of file lua_common.cpp.
References lua_pushfstring(), luaL_argerror(), luaL_typename, and wfl::msg().
void operator delete | ( | void * | , |
lua_State * | L | ||
) |
Definition at line 504 of file lua_common.cpp.
References lua_pop.
void* operator new | ( | std::size_t | sz, |
lua_State * | L | ||
) |
Definition at line 499 of file lua_common.cpp.
References lua_newuserdata().
void push_error_handler | ( | lua_State * | L | ) |
Definition at line 1005 of file lua_common.cpp.
References executeKey, LUA_REGISTRYINDEX, lua_setfield(), and luaW_getglobal().
Referenced by lua_kernel_base::lua_kernel_base(), and luaW_getglobal().
|
static |
Definition at line 49 of file lua_common.cpp.
Referenced by luaW_pcall_internal(), and push_error_handler().
|
static |
Definition at line 44 of file lua_common.cpp.
Referenced by lua_common::intf_textdomain(), and lua_common::register_gettext_metatable().
|
static |
|
static |
Definition at line 48 of file lua_common.cpp.
Referenced by lua_common::impl_tstring_concat(), lua_common::impl_tstring_le(), lua_common::impl_tstring_lt(), luaW_checkvariable(), luaW_iststring(), luaW_pushtstring(), luaW_toscalar(), luaW_totstring(), lua_common::register_tstring_metatable(), and lua_common::tstring_concat_aux().
|
static |
Definition at line 47 of file lua_common.cpp.
Referenced by lua_common::impl_vconfig_ipairs(), lua_common::impl_vconfig_ipairs_iter(), and lua_common::register_vconfig_metatable().
|
static |
Definition at line 45 of file lua_common.cpp.
Referenced by luaW_checkconfig(), luaW_pushvconfig(), luaW_toconfig(), luaW_tovconfig(), and lua_common::register_vconfig_metatable().
|
static |
Definition at line 46 of file lua_common.cpp.
Referenced by lua_common::impl_vconfig_pairs(), lua_common::impl_vconfig_pairs_iter(), and lua_common::register_vconfig_metatable().