The Battle for Wesnoth  1.13.4+dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
game_lua_kernel Class Reference

#include <game_lua_kernel.hpp>

Inheritance diagram for game_lua_kernel:
Inheritance graph

Public Member Functions

std::vector< team > & teams ()
 
const gamemapmap () const
 
 game_lua_kernel (CVideo *, game_state &, play_controller &, reports &)
 
void set_game_display (game_display *gd)
 
virtual std::string my_name ()
 
std::string apply_effect (const std::string &name, unit &u, const config &cfg, bool need_apply)
 
void initialize (const config &level)
 
void save_game (config &level)
 Executes the game_events.on_save function and adds to cfg the returned tags. More...
 
void load_game (const config &level)
 Executes the game_events.on_load function and passes to it all the scenario tags not yet handled. More...
 
bool run_event (game_events::queued_event const &)
 Executes the game_events.on_event function. More...
 
void push_builtin_effect ()
 Registers a function for use as an effect handler. More...
 
void set_wml_action (std::string const &, game_events::wml_action::handler)
 Registers a function for use as an action handler. More...
 
bool run_wml_action (std::string const &, vconfig const &, game_events::queued_event const &)
 Runs a command from an event handler. More...
 
bool run_filter (char const *name, unit const &u)
 Runs a script from a unit filter. More...
 
bool run_filter (char const *name, map_location const &l)
 Runs a script from a location filter. More...
 
bool run_filter (char const *name, int nArgs)
 Runs a script from a filter. More...
 
bool run_wml_conditional (std::string const &, vconfig const &)
 Runs a command from an event handler. More...
 
virtual void log_error (char const *msg, char const *context="Lua error")
 
ai::lua_ai_contextcreate_lua_ai_context (char const *code, ai::engine_lua *engine)
 
ai::lua_ai_action_handlercreate_lua_ai_action_handler (char const *code, ai::lua_ai_context &context)
 
int return_unit_method (lua_State *L, char const *m)
 
void mouse_over_hex_callback (const map_location &loc)
 
void select_hex_callback (const map_location &loc)
 
- Public Member Functions inherited from lua_kernel_base
 lua_kernel_base (CVideo *ptr)
 
virtual ~lua_kernel_base ()
 
void run_lua_tag (const config &cfg)
 Runs a [lua] tag. More...
 
void run (char const *prog, int nArgs=0)
 Runs a plain script. More...
 
void throwing_run (char const *prog, int nArgs)
 Runs a plain script, but reports errors by throwing lua_error. More...
 
void interactive_run (char const *prog)
 Tests if a program resolves to an expression, and pretty prints it if it is, otherwise it runs it normally. More...
 
void load_package ()
 Loads the "package" package into the Lua environment. More...
 
std::vector< std::stringget_global_var_names ()
 Gets all the global variable names in the Lua environment. More...
 
std::vector< std::stringget_attribute_names (const std::string &var_path)
 Gets all attribute names of an extended variable name. More...
 
const std::stringstream & get_log ()
 
void clear_log ()
 
void set_external_log (std::ostream *lg)
 
virtual void throw_exception (char const *msg, char const *context="Lua error")
 
void set_video (CVideo *ptr)
 
virtual boost::uint32_t get_random_seed ()
 
lua_Stateget_state ()
 

Public Attributes

int map_locked_
 A value != 0 means that the shouldn't remove any units from the map, usually because we are currently operating on a unit& and removing it might cause memory corruptions note that we don't check for the dtor of lua owned units because we assume that we operate on such a unit that the lua function that invoked the operation on that unit (like wesnoth.add_modification, wesnoth.match_unit ..) have a local copy of that lua_unit* userdata in its stack that prevents it from beeing collected. More...
 

Private Member Functions

game_boardboard ()
 
unit_mapunits ()
 
game_datagamedata ()
 
tod_managertod_man ()
 
const game_events::queued_eventget_event_info ()
 
int intf_allow_end_turn (lua_State *)
 Allow undo sets the flag saying whether the event has mutated the game to false. More...
 
int intf_allow_undo (lua_State *)
 Allow undo sets the flag saying whether the event has mutated the game to false. More...
 
int intf_add_time_area (lua_State *)
 Adding new time_areas dynamically with Standard Location Filters. More...
 
int intf_remove_time_area (lua_State *)
 Removing new time_areas dynamically with Standard Location Filters. More...
 
int intf_animate_unit (lua_State *)
 
int intf_gamestate_inspector (lua_State *)
 
int intf_get_unit (lua_State *)
 Gets the unit at the given location or with the given id. More...
 
int intf_get_units (lua_State *)
 Gets all the units matching a given filter. More...
 
int intf_get_displayed_unit (lua_State *)
 Gets the unit displayed in the sidebar. More...
 
int intf_match_unit (lua_State *L)
 Matches a unit against the given filter. More...
 
int intf_get_recall_units (lua_State *L)
 Gets the numeric ids of all the units matching a given filter on the recall lists. More...
 
int intf_get_variable (lua_State *L)
 Gets a WML variable. More...
 
int intf_get_side_variable (lua_State *L)
 Gets a side specific WML variable. More...
 
int intf_random (lua_State *L)
 Returns a random numer, same interface as math.random. More...
 
int intf_set_variable (lua_State *L)
 Sets a WML variable. More...
 
int intf_set_side_variable (lua_State *L)
 Gets a side specific WML variable. More...
 
int intf_highlight_hex (lua_State *L)
 Highlights the given location on the map. More...
 
int intf_is_enemy (lua_State *L)
 Returns whether the first side is an enemy of the second one. More...
 
int intf_view_locked (lua_State *L)
 Gets whether gamemap scrolling is disabled for the user. More...
 
int intf_lock_view (lua_State *L)
 Sets whether gamemap scrolling is disabled for the user. More...
 
int intf_get_terrain (lua_State *L)
 Gets a terrain code. More...
 
int intf_set_terrain (lua_State *L)
 Sets a terrain code. More...
 
int intf_get_terrain_info (lua_State *L)
 Gets details about a terrain. More...
 
int intf_get_time_of_day (lua_State *L)
 Gets time of day information. More...
 
int intf_get_village_owner (lua_State *L)
 Gets the side of a village owner. More...
 
int intf_set_village_owner (lua_State *L)
 Sets the owner of a village. More...
 
int intf_get_map_size (lua_State *L)
 Returns the map size. More...
 
int intf_get_mouseover_tile (lua_State *L)
 Returns the currently overed tile. More...
 
int intf_get_selected_tile (lua_State *L)
 Returns the currently selected tile. More...
 
int intf_get_starting_location (lua_State *L)
 Returns the starting position of a side. More...
 
int impl_game_config_get (lua_State *L)
 Gets some game_config data (__index metamethod). More...
 
int impl_game_config_set (lua_State *L)
 Sets some game_config data (__newindex metamethod). More...
 
int impl_current_get (lua_State *L)
 Gets some data about current point of game (__index metamethod). More...
 
int intf_check_end_level_disabled (lua_State *L)
 
int intf_clear_messages (lua_State *)
 Removes all messages from the chat window. More...
 
int intf_end_level (lua_State *)
 
int intf_end_turn (lua_State *)
 
int intf_find_path (lua_State *L)
 Finds a path between two locations. More...
 
int intf_find_reach (lua_State *L)
 Finds all the locations reachable by a unit. More...
 
int intf_find_cost_map (lua_State *L)
 Is called with one or more units and builds a cost map. More...
 
int intf_heal_unit (lua_State *L)
 
int intf_message (lua_State *L)
 Displays a message in the chat window and in the logs. More...
 
int intf_open_help (lua_State *L)
 
int intf_play_sound (lua_State *L)
 Plays a sound, possibly repeated. More...
 
int intf_print (lua_State *L)
 
int intf_put_unit (lua_State *L)
 Places a unit on the map. More...
 
int intf_erase_unit (lua_State *L)
 Erases a unit from the map. More...
 
int intf_put_recall_unit (lua_State *L)
 Puts a unit on a recall list. More...
 
int intf_extract_unit (lua_State *L)
 Extracts a unit from the map or a recall list and gives it to Lua. More...
 
int intf_find_vacant_tile (lua_State *L)
 Finds a vacant tile. More...
 
int intf_float_label (lua_State *L)
 Floats some text on the map. More...
 
int intf_set_end_campaign_credits (lua_State *L)
 
int intf_set_end_campaign_text (lua_State *L)
 
int intf_clear_menu_item (lua_State *L)
 
int intf_set_menu_item (lua_State *L)
 
int intf_set_next_scenario (lua_State *L)
 
int intf_shroud_op (lua_State *L, bool place_shroud)
 
int intf_simulate_combat (lua_State *L)
 Simulates a combat between two units. More...
 
int intf_scroll_to_tile (lua_State *L)
 Scrolls to given tile. More...
 
int intf_select_hex (lua_State *L)
 
int intf_select_unit (lua_State *L)
 Selects and highlights the given location on the map. More...
 
int intf_deselect_hex (lua_State *L)
 Deselects any highlighted hex on the map. More...
 
int intf_is_skipping_messages (lua_State *L)
 Return true if a replay is in progress but the player has chosen to skip it. More...
 
int intf_skip_messages (lua_State *L)
 Set whether to skip messages Arg 1 (optional) - boolean. More...
 
int intf_get_locations (lua_State *L)
 Gets all the locations matching a given filter. More...
 
int intf_get_villages (lua_State *L)
 Gets all the villages matching a given filter, or all the villages on the map if no filter is given. More...
 
int intf_match_location (lua_State *L)
 Matches a location against the given filter. More...
 
int intf_match_side (lua_State *L)
 Matches a side against the given filter. More...
 
int intf_modify_ai_wml (lua_State *L)
 
int intf_modify_side (lua_State *L)
 
int intf_get_sides (lua_State *L)
 Returns a proxy table array for all sides matching the given SSF. More...
 
int intf_add_tile_overlay (lua_State *L)
 Adds an overlay on a tile. More...
 
int intf_remove_tile_overlay (lua_State *L)
 Removes an overlay from a tile. More...
 
int intf_add_event (lua_State *L)
 Adding new events. More...
 
int intf_remove_event (lua_State *L)
 
int intf_color_adjust (lua_State *L)
 
int intf_delay (lua_State *L)
 Delays engine for a while. More...
 
int intf_kill (lua_State *L)
 
int intf_label (lua_State *L)
 
int intf_redraw (lua_State *L)
 
int intf_replace_schedule (lua_State *l)
 Replacing the current time of day schedule. More...
 
int intf_set_time_of_day (lua_State *L)
 
int intf_scroll (lua_State *L)
 
int intf_get_all_vars (lua_State *L)
 Gets all the WML variables currently set. More...
 
int impl_theme_item (lua_State *L, std::string name)
 Executes its upvalue as a theme item generator. More...
 
int impl_theme_items_get (lua_State *L)
 Creates a field of the theme_items table and returns it (__index metamethod). More...
 
int impl_theme_items_set (lua_State *L)
 Sets a field of the theme_items table (__newindex metamethod). More...
 
int cfun_builtin_effect (lua_State *L)
 Applies its upvalue as an effect Arg 1: The unit to apply to Arg 3: The [effect] tag contents Arg 3: If false, only build description Return: The description of the effect. More...
 
int cfun_wml_action (lua_State *L)
 Executes its upvalue as a wml action. More...
 
int intf_fire_event (lua_State *L)
 Fires an event. More...
 
int intf_fire_wml_menu_item (lua_State *L)
 Fires a wml menu item. More...
 
int intf_teleport (lua_State *L)
 Teeleports a unit to a location. More...
 
int intf_remove_sound_source (lua_State *L)
 Removes a sound source by its ID Arg 1: sound source ID. More...
 
int intf_add_sound_source (lua_State *L)
 Add a new sound source Arg 1: Table containing keyword arguments. More...
 
int intf_get_sound_source (lua_State *L)
 Get an existing sound source Arg 1: The sound source ID Return: Config of sound source info, or nil if it didn't exist This is a copy of the sound source info, so you need to call add_sound_source again after changing it. More...
 
int intf_log (lua_State *L)
 Logs a message Arg 1: (optional) Logger; "wml" for WML errors or deprecations Arg 2: Message Arg 3: Whether to print to chat (always true if arg 1 is "wml") More...
 
int intf_toggle_fog (lua_State *L, const bool clear)
 Implements the lifting and resetting of fog via WML. More...
 
std::string synced_state ()
 converts synced_context::get_synced_state() to a string. More...
 
void lua_chat (std::string const &caption, std::string const &msg)
 
std::vector< intget_sides_vector (const vconfig &cfg)
 Gets a vector of sides from side= attribute in a given config node. More...
 

Static Private Member Functions

static void extract_preload_scripts (config const &game_config)
 

Private Attributes

game_displaygame_display_
 
game_stategame_state_
 
play_controllerplay_controller_
 
reportsreports_
 
config level_lua_
 
std::stack
< game_events::queued_event
const * > 
queued_events_
 

Static Private Attributes

static std::vector< configpreload_scripts
 
static config preload_config
 

Friends

class game_config_manager
 

Additional Inherited Members

- Public Types inherited from lua_kernel_base
typedef std::function< void(char
const *, char const *)> 
error_handler
 
- Static Public Member Functions inherited from lua_kernel_base
template<typename T >
static T & get_lua_kernel (lua_State *L)
 
- Protected Member Functions inherited from lua_kernel_base
int intf_print (lua_State *L)
 Replacement print function – instead of printing to std::cout, print to the command log. More...
 
int intf_show_dialog (lua_State *L)
 
int intf_show_message_dialog (lua_State *L)
 
int intf_show_popup_dialog (lua_State *L)
 
int intf_show_lua_console (lua_State *L)
 
bool protected_call (int nArgs, int nRets, error_handler)
 
bool load_string (char const *prog, error_handler)
 
virtual bool protected_call (int nArgs, int nRets)
 
virtual bool load_string (char const *prog)
 
int intf_dofile (lua_State *L)
 Loads and executes a Lua file. More...
 
int intf_require (lua_State *L)
 Loads and executes a Lua file, if there is no corresponding entry in wesnoth.package. More...
 
- Static Protected Member Functions inherited from lua_kernel_base
static bool protected_call (lua_State *L, int nArgs, int nRets, error_handler)
 
- Protected Attributes inherited from lua_kernel_base
lua_StatemState
 
CVideovideo_
 
command_log cmd_log_
 

Detailed Description

Definition at line 48 of file game_lua_kernel.hpp.

Constructor & Destructor Documentation

game_lua_kernel::game_lua_kernel ( CVideo video,
game_state gs,
play_controller pc,
reports reports_object 
)

Definition at line 4501 of file game_lua_kernel.cpp.

References unit::builtin_effects, lua_kernel_base::cmd_log_, getunitKey, gui2::event::handler, impl_unit_attack_get(), impl_unit_attack_set(), impl_unit_attacks_get(), impl_unit_attacks_len(), impl_unit_collect(), impl_unit_equality(), impl_unit_get(), impl_unit_set(), impl_unit_status_get(), impl_unit_status_set(), impl_unit_variables_get(), impl_unit_variables_set(), ai::lua_ai_context::init(), intf_add_known_unit(), intf_add_modification(), intf_advance_unit(), intf_copy_unit(), intf_create_unit(), intf_debug(), intf_debug_ai(), intf_do_unsynced(), intf_eval_conditional(), intf_get_era(), intf_get_image_size(), intf_get_time_stamp(), intf_get_traits(), intf_get_viewing_side(), intf_modify_ai(), intf_set_music(), intf_synchronize_choice(), intf_synchronize_choices(), intf_transform_unit(), intf_unit_ability(), intf_unit_defense(), intf_unit_jamming_cost(), intf_unit_movement_cost(), intf_unit_resistance(), intf_unit_vision_cost(), lua_createtable(), lua_getglobal(), lua_istable, lua_newtable, lua_newuserdata(), lua_pop, lua_pushcfunction, lua_pushlightuserdata(), lua_pushstring(), lua_rawset(), LUA_REGISTRYINDEX, lua_setfield(), lua_setglobal(), lua_setmetatable(), lua_settop(), luaL_setfuncs(), luaW_getglobal(), lua_kernel_base::mState, push_builtin_effect(), push_locations_talbe(), queued_events_, lua_unit_type::register_metatable(), lua_race::register_metatable(), lua_team::register_metatable(), lua_common::register_vconfig_metatable(), game_events::wml_action::registry(), set_wml_action(), uattackKey, uattacksKey, unitvarKey, and ustatusKey.

Member Function Documentation

std::string game_lua_kernel::apply_effect ( const std::string name,
unit u,
const config cfg,
bool  need_apply 
)
game_board & game_lua_kernel::board ( )
private
int game_lua_kernel::cfun_builtin_effect ( lua_State L)
private

Applies its upvalue as an effect Arg 1: The unit to apply to Arg 3: The [effect] tag contents Arg 3: If false, only build description Return: The description of the effect.

Definition at line 5034 of file game_lua_kernel.cpp.

References unit::apply_builtin_effect(), unit::describe_builtin_effect(), lua_unit::get(), lua_pushstring(), lua_tostring, lua_upvalueindex, luaW_checkconfig(), luaW_checkunit(), and luaW_toboolean().

int game_lua_kernel::cfun_wml_action ( lua_State L)
private

Executes its upvalue as a wml action.

Definition at line 5084 of file game_lua_kernel.cpp.

References get_event_info(), h, lua_touserdata(), lua_upvalueindex, and luaW_checkvconfig().

ai::lua_ai_action_handler * game_lua_kernel::create_lua_ai_action_handler ( char const *  code,
ai::lua_ai_context context 
)
ai::lua_ai_context * game_lua_kernel::create_lua_ai_context ( char const *  code,
ai::engine_lua engine 
)

Definition at line 5279 of file game_lua_kernel.cpp.

References ai::lua_ai_context::create(), and lua_kernel_base::mState.

void game_lua_kernel::extract_preload_scripts ( config const &  game_config)
staticprivate

Definition at line 166 of file game_lua_kernel.cpp.

References config::child(), and config::child_range().

Referenced by game_config_manager::load_game_config().

game_data & game_lua_kernel::gamedata ( )
private
const game_events::queued_event & game_lua_kernel::get_event_info ( )
private
std::vector< int > game_lua_kernel::get_sides_vector ( const vconfig cfg)
private

Gets a vector of sides from side= attribute in a given config node.

Promotes consistent behavior.

Definition at line 193 of file game_lua_kernel.cpp.

References vconfig::child(), config::attribute_value::empty(), game_state_, side_filter::get_teams(), vconfig::null(), config::attribute_value::str(), and WRN_LUA.

Referenced by intf_modify_side(), intf_scroll(), and intf_shroud_op().

int game_lua_kernel::impl_current_get ( lua_State L)
private
int game_lua_kernel::impl_game_config_get ( lua_State L)
private
int game_lua_kernel::impl_game_config_set ( lua_State L)
private

Sets some game_config data (__newindex metamethod).

  • Arg 1: userdata (ignored).
  • Arg 2: string containing the name of the property.
  • Arg 3: something containing the attribute.

Definition at line 1661 of file game_lua_kernel.cpp.

References game_config::base_income, game_config::kill_experience, LOG_LUA, luaL_argerror(), luaL_checkstring, modify_int_attrib, game_config::poison_amount, game_config::recall_cost, game_config::rest_heal_amount, tod_man(), game_config::village_income, and game_config::village_support.

int game_lua_kernel::impl_theme_item ( lua_State L,
std::string  name 
)
private
int game_lua_kernel::impl_theme_items_get ( lua_State L)
private

Creates a field of the theme_items table and returns it (__index metamethod).

Definition at line 4229 of file game_lua_kernel.cpp.

References impl_theme_item(), lua_pushvalue(), lua_rawset(), luaL_checkstring, lua_cpp::push_closure(), reports::register_generator(), and reports_.

int game_lua_kernel::impl_theme_items_set ( lua_State L)
private

Sets a field of the theme_items table (__newindex metamethod).

Definition at line 4243 of file game_lua_kernel.cpp.

References lua_pushvalue(), lua_rawset(), luaL_checkstring, reports::register_generator(), and reports_.

void game_lua_kernel::initialize ( const config level)
int game_lua_kernel::intf_add_event ( lua_State L)
private
int game_lua_kernel::intf_add_sound_source ( lua_State L)
private

Add a new sound source Arg 1: Table containing keyword arguments.

Definition at line 4337 of file game_lua_kernel.cpp.

References soundsource::manager::add(), config::debug(), ERR_LUA, play_controller::get_soundsource_man(), luaW_checkconfig(), and play_controller_.

int game_lua_kernel::intf_add_tile_overlay ( lua_State L)
private

Adds an overlay on a tile.

  • Arg 1: location.
  • Arg 2: WML table.

Definition at line 3567 of file game_lua_kernel.cpp.

References display::add_overlay(), game_display_, luaW_checkconfig(), and luaW_checklocation().

int game_lua_kernel::intf_add_time_area ( lua_State L)
private

Adding new time_areas dynamically with Standard Location Filters.

Definition at line 4080 of file game_lua_kernel.cpp.

References tod_manager::add_time_area(), game_state_, terrain_filter::get_locations(), vconfig::get_parsed_config(), LOG_LUA, log_scope, luaW_checkvconfig(), and tod_man().

int game_lua_kernel::intf_allow_end_turn ( lua_State L)
private

Allow undo sets the flag saying whether the event has mutated the game to false.

Definition at line 4061 of file game_lua_kernel.cpp.

References gamedata(), luaW_toboolean(), and game_data::set_allow_end_turn().

int game_lua_kernel::intf_allow_undo ( lua_State L)
private

Allow undo sets the flag saying whether the event has mutated the game to false.

Definition at line 4068 of file game_lua_kernel.cpp.

References game_events::t_pump::context_mutated(), lua_isboolean, luaW_toboolean(), play_controller_, and play_controller::pump().

int game_lua_kernel::intf_animate_unit ( lua_State L)
private
int game_lua_kernel::intf_check_end_level_disabled ( lua_State L)
private
int game_lua_kernel::intf_clear_menu_item ( lua_State L)
private
int game_lua_kernel::intf_clear_messages ( lua_State )
private

Removes all messages from the chat window.

Definition at line 1798 of file game_lua_kernel.cpp.

References display_chat_manager::clear_chat_messages(), game_display_, and game_display::get_chat_manager().

int game_lua_kernel::intf_color_adjust ( lua_State L)
private
int game_lua_kernel::intf_delay ( lua_State L)
private

Delays engine for a while.

  • Arg 1: integer.
  • Arg 2: boolean (optional).

Definition at line 3638 of file game_lua_kernel.cpp.

References CVideo::delay(), game_display_, luaL_checkinteger(), luaW_toboolean(), play_controller_, controller_base::play_slice(), and display::turbo_speed().

int game_lua_kernel::intf_deselect_hex ( lua_State L)
private

Deselects any highlighted hex on the map.

No arguments or return values

Definition at line 2988 of file game_lua_kernel.cpp.

References game_display_, play_controller::get_mouse_handler_base(), game_display::highlight_hex(), play_controller_, and events::mouse_handler::select_hex().

int game_lua_kernel::intf_end_level ( lua_State L)
private
int game_lua_kernel::intf_end_turn ( lua_State )
private

Definition at line 1828 of file game_lua_kernel.cpp.

References play_controller::force_end_turn(), and play_controller_.

int game_lua_kernel::intf_erase_unit ( lua_State L)
private
int game_lua_kernel::intf_extract_unit ( lua_State L)
private
int game_lua_kernel::intf_find_cost_map ( lua_State L)
private

Is called with one or more units and builds a cost map.

  • Arg 1: source location. (Or Arg 1: unit. Or Arg 1: table containing a filter)
  • Arg 2: optional array of tables with 4 elements (coordinates + side + unit type string)
  • Arg 3: optional table (optional fields: ignore_units, ignore_teleport, viewing_side, debug).
  • Arg 4: optional table: standard location filter.
  • Ret 1: array of triples (coordinates + array of tuples(summed cost + reach counter)).

Definition at line 2094 of file game_lua_kernel.cpp.

References pathfind::full_cost_map::add_unit(), board(), map_labels::clear_all(), debug, resources::fake_units, unit_map::find(), unit_type_data::find(), game_display_, game_state_, terrain_filter::get_locations(), pathfind::full_cost_map::get_pair_at(), i, intf_find_cost_map_helper(), display::labels(), load_fake_units(), lua_createtable(), lua_isnil, lua_istable, lua_pop, lua_pushinteger(), lua_pushstring(), lua_rawget(), lua_rawseti(), luaL_argerror(), luaL_checkinteger(), luaW_checklocation(), luaW_toboolean(), luaW_tounit(), luaW_tovconfig(), vconfig::null(), map_labels::set_label(), game_board::teams(), teams(), vconfig::unconstructed_vconfig(), unit_types, units(), and unit_map::iterator_base< iter_types >::valid().

int game_lua_kernel::intf_find_path ( lua_State L)
private
int game_lua_kernel::intf_find_reach ( lua_State L)
private
int game_lua_kernel::intf_find_vacant_tile ( lua_State L)
private

Finds a vacant tile.

  • Arg 1: location.
  • Arg 2: optional unit for checking movement type.
  • Rets 1,2: location.

Definition at line 2596 of file game_lua_kernel.cpp.

References pathfind::find_vacant_tile(), getunitKey, lua_isnoneornil, lua_pushinteger(), lua_touserdata(), luaW_checkconfig(), luaW_checklocation(), luaW_hasmetatable(), pathfind::VACANT_ANY, map_location::valid(), map_location::x, and map_location::y.

int game_lua_kernel::intf_fire_event ( lua_State L)
private

Fires an event.

  • Arg 1: string containing the event name.
  • Arg 2: optional first location.
  • Arg 3: optional second location.
  • Arg 4: optional WML table used as the [weapon] tag.
  • Arg 5: optional WML table used as the [second_weapon] tag.
  • Ret 1: boolean indicating whether the event was processed or not.

Definition at line 1040 of file game_lua_kernel.cpp.

References config::add_child(), game_events::t_pump::fire(), lua_isnoneornil, lua_pushboolean(), luaL_checkstring, luaW_checkconfig(), luaW_tolocation(), play_controller_, pos, and play_controller::pump().

int game_lua_kernel::intf_fire_wml_menu_item ( lua_State L)
private

Fires a wml menu item.

  • Arg 1: id of the item. it is not possible to fire items that don't have ids with this function.
  • Arg 2: optional first location.
  • Ret 1: boolean, true indicating that the event was fired successfully

NOTE: This is not an "official" feature, it may currently cause assertion failures if used with menu items which have "needs_select". It is not supported right now to use it this way. The purpose of this function right now is to make it possible to have automated sanity tests for the wml menu items system.

Definition at line 1080 of file game_lua_kernel.cpp.

References game_events::wmi_container::fire_item(), game_state_, gamedata(), game_state::get_wml_menu_items(), lua_pushboolean(), luaL_checkstring, luaW_checklocation(), and units().

int game_lua_kernel::intf_float_label ( lua_State L)
private

Floats some text on the map.

  • Arg 1: location.
  • Arg 2: string.
  • Arg 3: color.

Definition at line 2624 of file game_lua_kernel.cpp.

References game_display::float_label(), game_display_, font::LABEL_COLOR, lua_isnoneornil, luaL_checkstring, luaW_checklocation(), luaW_checktstring(), and help::string_to_color().

int game_lua_kernel::intf_gamestate_inspector ( lua_State L)
private
int game_lua_kernel::intf_get_all_vars ( lua_State L)
private

Gets all the WML variables currently set.

  • Ret 1: WML table

Definition at line 4257 of file game_lua_kernel.cpp.

References gamedata(), and luaW_pushconfig().

int game_lua_kernel::intf_get_displayed_unit ( lua_State L)
private

Gets the unit displayed in the sidebar.

  • Ret 1: full userdata with __index pointing to impl_unit_get and __newindex pointing to impl_unit_set.

Definition at line 883 of file game_lua_kernel.cpp.

References board(), game_display::displayed_unit_hex(), game_board::find_visible_unit(), game_display_, getunitKey, lua_newuserdata(), lua_pushlightuserdata(), lua_rawget(), LUA_REGISTRYINDEX, lua_setmetatable(), display::show_everything(), teams(), unit_map::iterator_base< iter_types >::valid(), and display::viewing_team().

int game_lua_kernel::intf_get_locations ( lua_State L)
private

Gets all the locations matching a given filter.

  • Arg 1: WML table.
  • Ret 1: array of integer pairs.

Definition at line 3172 of file game_lua_kernel.cpp.

References game_state_, terrain_filter::get_locations(), i, lua_createtable(), lua_pushinteger(), lua_rawseti(), and luaW_checkvconfig().

int game_lua_kernel::intf_get_map_size ( lua_State L)
private

Returns the map size.

  • Ret 1: width.
  • Ret 2: height.
  • Ret 3: border size.

Definition at line 1529 of file game_lua_kernel.cpp.

References board(), gamemap::border_size(), gamemap::h(), lua_pushinteger(), game_board::map(), map(), and gamemap::w().

int game_lua_kernel::intf_get_mouseover_tile ( lua_State L)
private

Returns the currently overed tile.

  • Ret 1: x.
  • Ret 2: y.

Definition at line 1543 of file game_lua_kernel.cpp.

References board(), game_display_, lua_pushinteger(), map(), display::mouseover_hex(), map_location::x, and map_location::y.

int game_lua_kernel::intf_get_recall_units ( lua_State L)
private

Gets the numeric ids of all the units matching a given filter on the recall lists.

  • Arg 1: optional table containing a filter
  • Ret 1: table containing full userdata with __index pointing to impl_unit_get and __newindex pointing to impl_unit_set.

Definition at line 996 of file game_lua_kernel.cpp.

References game_state_, getunitKey, i, lua_newtable, lua_newuserdata(), lua_pushlightuserdata(), lua_pushvalue(), lua_rawget(), lua_rawseti(), LUA_REGISTRYINDEX, lua_setmetatable(), lua_settop(), luaW_checkvconfig(), vconfig::null(), and teams().

int game_lua_kernel::intf_get_selected_tile ( lua_State L)
private

Returns the currently selected tile.

  • Ret 1: x.
  • Ret 2: y.

Definition at line 1561 of file game_lua_kernel.cpp.

References board(), game_display_, lua_pushinteger(), map(), display::selected_hex(), map_location::x, and map_location::y.

int game_lua_kernel::intf_get_side_variable ( lua_State L)
private

Gets a side specific WML variable.

  • Arg 1: integer side number.
  • Arg 2: string containing the variable name.
  • Ret 1: value of the variable, if any.

Definition at line 1110 of file game_lua_kernel.cpp.

References luaL_argerror(), luaL_checkinteger(), luaL_checkstring, luaW_pushvariable(), and teams().

int game_lua_kernel::intf_get_sides ( lua_State L)
private

Returns a proxy table array for all sides matching the given SSF.

  • Arg 1: SSF
  • Ret 1: proxy table array

Definition at line 3447 of file game_lua_kernel.cpp.

References game_state_, side_filter::get_teams(), LOG_LUA, lua_createtable(), lua_rawseti(), lua_settop(), luaW_checkvconfig(), luaW_pushteam(), my_name(), vconfig::null(), and teams().

int game_lua_kernel::intf_get_sound_source ( lua_State L)
private

Get an existing sound source Arg 1: The sound source ID Return: Config of sound source info, or nil if it didn't exist This is a copy of the sound source info, so you need to call add_sound_source again after changing it.

Definition at line 4359 of file game_lua_kernel.cpp.

References config::empty(), soundsource::manager::get(), play_controller::get_soundsource_man(), luaL_checkstring, luaW_pushconfig(), and play_controller_.

int game_lua_kernel::intf_get_starting_location ( lua_State L)
private

Returns the starting position of a side.

Arg 1: side number Ret 1: table with unnamed indices holding wml coordinates x and y

Definition at line 1579 of file game_lua_kernel.cpp.

References board(), lua_createtable(), lua_pushinteger(), lua_rawseti(), luaL_argerror(), luaL_checkint, game_board::map(), map(), gamemap::starting_position(), teams(), map_location::x, and map_location::y.

int game_lua_kernel::intf_get_terrain ( lua_State L)
private

Gets a terrain code.

  • Arg 1: map location.
  • Ret 1: string.

Definition at line 1332 of file game_lua_kernel.cpp.

References board(), lua_pushstring(), luaW_checklocation(), game_board::map(), and t_translation::write_terrain_code().

int game_lua_kernel::intf_get_terrain_info ( lua_State L)
private
int game_lua_kernel::intf_get_time_of_day ( lua_State L)
private
int game_lua_kernel::intf_get_unit ( lua_State L)
private

Gets the unit at the given location or with the given id.

  • Arg 1: location OR
  • Arg 1: string ID
  • Ret 1: full userdata with __index pointing to impl_unit_get and __newindex pointing to impl_unit_set.

Definition at line 847 of file game_lua_kernel.cpp.

References unit_map::find(), getunitKey, lua_isnumber(), lua_isstring(), lua_newuserdata(), lua_pushlightuserdata(), lua_rawget(), LUA_REGISTRYINDEX, lua_setmetatable(), luaL_argerror(), luaL_checkstring, luaW_tolocation(), units(), and unit_map::iterator_base< iter_types >::valid().

int game_lua_kernel::intf_get_units ( lua_State L)
private

Gets all the units matching a given filter.

  • Arg 1: optional table containing a filter
  • Ret 1: table containing full userdata with __index pointing to impl_unit_get and __newindex pointing to impl_unit_set.

Definition at line 909 of file game_lua_kernel.cpp.

References game_state_, getunitKey, i, lua_newtable, lua_newuserdata(), lua_pushlightuserdata(), lua_pushvalue(), lua_rawget(), lua_rawseti(), LUA_REGISTRYINDEX, lua_setmetatable(), lua_settop(), and luaW_checkvconfig().

int game_lua_kernel::intf_get_variable ( lua_State L)
private

Gets a WML variable.

  • Arg 1: string containing the variable name.
  • Arg 2: optional bool indicating if tables for containers should be left empty.
  • Ret 1: value of the variable, if any.

Definition at line 1097 of file game_lua_kernel.cpp.

References gamedata(), game_data::get_variable_access_read(), luaL_checkstring, and luaW_pushvariable().

int game_lua_kernel::intf_get_village_owner ( lua_State L)
private

Gets the side of a village owner.

  • Arg 1: map location.
  • Ret 1: integer.

Definition at line 1482 of file game_lua_kernel.cpp.

References board(), lua_pushinteger(), luaW_checklocation(), map(), and display_context::village_owner().

int game_lua_kernel::intf_get_villages ( lua_State L)
private

Gets all the villages matching a given filter, or all the villages on the map if no filter is given.

  • Arg 1: WML table (optional).
  • Ret 1: array of integer pairs.

Definition at line 3201 of file game_lua_kernel.cpp.

References game_state_, i, lua_createtable(), lua_newtable, lua_pushinteger(), lua_rawseti(), luaW_checkvconfig(), map(), terrain_filter::match(), and gamemap::villages().

int game_lua_kernel::intf_heal_unit ( lua_State L)
private
int game_lua_kernel::intf_highlight_hex ( lua_State L)
private

Highlights the given location on the map.

  • Arg 1: location.

Definition at line 1272 of file game_lua_kernel.cpp.

References game_display::display_unit_hex(), game_display_, game_display::highlight_hex(), luaL_argerror(), luaW_checklocation(), and map().

Referenced by intf_select_hex().

int game_lua_kernel::intf_is_enemy ( lua_State L)
private

Returns whether the first side is an enemy of the second one.

  • Args 1,2: side numbers.
  • Ret 1: boolean.

Definition at line 1291 of file game_lua_kernel.cpp.

References lua_pushboolean(), luaL_checkint, and teams().

int game_lua_kernel::intf_is_skipping_messages ( lua_State L)
private

Return true if a replay is in progress but the player has chosen to skip it.

Definition at line 3002 of file game_lua_kernel.cpp.

References game_state::events_manager_, game_state_, play_controller::is_skipping_replay(), lua_pushboolean(), and play_controller_.

int game_lua_kernel::intf_kill ( lua_State L)
private
int game_lua_kernel::intf_label ( lua_State L)
private
int game_lua_kernel::intf_lock_view ( lua_State L)
private

Sets whether gamemap scrolling is disabled for the user.

  • Arg 1: boolean, specifying the new locked/unlocked status.

Definition at line 1318 of file game_lua_kernel.cpp.

References game_display_, luaW_toboolean(), and display::set_view_locked().

int game_lua_kernel::intf_log ( lua_State L)
private

Logs a message Arg 1: (optional) Logger; "wml" for WML errors or deprecations Arg 2: Message Arg 3: Whether to print to chat (always true if arg 1 is "wml")

Definition at line 4380 of file game_lua_kernel.cpp.

References game_state::events_manager_, game_state_, lua_isstring(), luaL_checkstring, luaW_toboolean(), game_logic::msg(), and lg::wml_error().

int game_lua_kernel::intf_match_location ( lua_State L)
private

Matches a location against the given filter.

  • Arg 1: location.
  • Arg 2: WML table.
  • Ret 1: boolean.

Definition at line 3231 of file game_lua_kernel.cpp.

References game_state_, lua_pushboolean(), luaW_checklocation(), luaW_checkvconfig(), terrain_filter::match(), and vconfig::null().

int game_lua_kernel::intf_match_side ( lua_State L)
private

Matches a side against the given filter.

  • Args 1: side number.
  • Arg 2: WML table.
  • Ret 1: boolean.

Definition at line 3255 of file game_lua_kernel.cpp.

References game_state_, lua_pushboolean(), luaL_checkinteger(), luaW_checkvconfig(), side_filter::match(), vconfig::null(), and teams().

int game_lua_kernel::intf_match_unit ( lua_State L)
private

Matches a unit against the given filter.

  • Arg 1: full userdata.
  • Arg 2: table containing a filter
  • Arg 3: optional location OR optional "adjacent" unit
  • Ret 1: boolean.

Definition at line 941 of file game_lua_kernel.cpp.

References recall_list_manager::find_index(), game_state_, lua_unit::get(), unit::get_location(), getunitKey, unit::id(), lua_pushboolean(), lua_touserdata(), luaL_argerror(), luaL_typerror(), luaW_checkvconfig(), luaW_hasmetatable(), luaW_tolocation(), vconfig::null(), lua_unit::on_recall_list(), team::recall_list(), team::save_id(), teams(), and WRN_LUA.

int game_lua_kernel::intf_message ( lua_State L)
private

Displays a message in the chat window and in the logs.

  • Arg 1: optional message header.
  • Arg 2 (or 1): message.

Definition at line 1754 of file game_lua_kernel.cpp.

References LOG_LUA, lua_chat(), lua_isnone, and luaW_checktstring().

int game_lua_kernel::intf_modify_ai_wml ( lua_State L)
private
int game_lua_kernel::intf_modify_side ( lua_State L)
private
int game_lua_kernel::intf_open_help ( lua_State L)
private
int game_lua_kernel::intf_play_sound ( lua_State L)
private

Plays a sound, possibly repeated.

  • Arg 1: string.
  • Arg 2: optional integer.

Definition at line 2921 of file game_lua_kernel.cpp.

References play_controller::is_skipping_replay(), lua_tointeger, luaL_checkstring, play_controller_, sound::play_sound(), and sound::SOUND_FX.

int game_lua_kernel::intf_print ( lua_State L)
private
int game_lua_kernel::intf_put_recall_unit ( lua_State L)
private
int game_lua_kernel::intf_put_unit ( lua_State L)
private
int game_lua_kernel::intf_random ( lua_State L)
private

Returns a random numer, same interface as math.random.

Definition at line 1162 of file game_lua_kernel.cpp.

References random_new::generator, lua_isnoneornil, lua_isnumber(), lua_push(), and luaL_argerror().

int game_lua_kernel::intf_redraw ( lua_State L)
private
int game_lua_kernel::intf_remove_event ( lua_State L)
private

Definition at line 3615 of file game_lua_kernel.cpp.

References game_state::events_manager_, game_state_, and luaL_checkstring.

int game_lua_kernel::intf_remove_sound_source ( lua_State L)
private

Removes a sound source by its ID Arg 1: sound source ID.

Definition at line 4325 of file game_lua_kernel.cpp.

References play_controller::get_soundsource_man(), luaL_checkstring, play_controller_, and soundsource::manager::remove().

int game_lua_kernel::intf_remove_tile_overlay ( lua_State L)
private

Removes an overlay from a tile.

  • Arg 1: location.
  • Arg 2: optional string.

Definition at line 3584 of file game_lua_kernel.cpp.

References game_display_, lua_tostring, luaW_checklocation(), display::remove_overlay(), and display::remove_single_overlay().

int game_lua_kernel::intf_remove_time_area ( lua_State L)
private

Removing new time_areas dynamically with Standard Location Filters.

Definition at line 4097 of file game_lua_kernel.cpp.

References LOG_LUA, log_scope, luaL_checkstring, tod_manager::remove_time_area(), and tod_man().

int game_lua_kernel::intf_replace_schedule ( lua_State l)
private
int game_lua_kernel::intf_scroll ( lua_State L)
private
int game_lua_kernel::intf_scroll_to_tile ( lua_State L)
private

Scrolls to given tile.

  • Arg 1: location.
  • Arg 2: boolean preventing scroll to fog.
  • Arg 3: boolean specifying whether to warp instantly.

Definition at line 2936 of file game_lua_kernel.cpp.

References game_display_, luaW_checklocation(), luaW_toboolean(), display::SCROLL, display::scroll_to_tile(), and display::WARP.

int game_lua_kernel::intf_select_hex ( lua_State L)
private
int game_lua_kernel::intf_select_unit ( lua_State L)
private

Selects and highlights the given location on the map.

  • Arg 1: location.
  • Args 2,3: booleans

Definition at line 2971 of file game_lua_kernel.cpp.

References gui2::event::implementation::fire_event(), play_controller::get_mouse_handler_base(), lua_isnoneornil, luaL_argerror(), luaW_checklocation(), luaW_toboolean(), map(), play_controller_, and events::mouse_handler::select_hex().

Referenced by intf_select_hex().

int game_lua_kernel::intf_set_end_campaign_credits ( lua_State L)
private
int game_lua_kernel::intf_set_end_campaign_text ( lua_State L)
private
int game_lua_kernel::intf_set_menu_item ( lua_State L)
private
int game_lua_kernel::intf_set_next_scenario ( lua_State L)
private
int game_lua_kernel::intf_set_side_variable ( lua_State L)
private

Gets a side specific WML variable.

  • Arg 1: integer side number.
  • Arg 2: string containing the variable name.
  • Arg 3: boolean/integer/string/table containing the value.

Definition at line 1128 of file game_lua_kernel.cpp.

References luaL_argerror(), luaL_checkinteger(), luaL_checkstring, luaW_checkvariable(), and teams().

int game_lua_kernel::intf_set_terrain ( lua_State L)
private

Sets a terrain code.

  • Arg 1: map location.
  • Arg 2: terrain code string.
  • Arg 3: layer: (overlay|base|both, default=both)
  • Arg 4: replace_if_failed, default = no

Definition at line 1349 of file game_lua_kernel.cpp.

References board(), game_board::change_terrain(), game_display_, lua_isnil, lua_isnone, lua_isnoneornil, luaL_checkstring, luaW_checklocation(), luaW_toboolean(), and game_display::needs_rebuild().

int game_lua_kernel::intf_set_time_of_day ( lua_State L)
private
int game_lua_kernel::intf_set_variable ( lua_State L)
private

Sets a WML variable.

  • Arg 1: string containing the variable name.
  • Arg 2: boolean/integer/string/table containing the value.

Definition at line 1146 of file game_lua_kernel.cpp.

References game_data::clear_variable(), gamedata(), game_data::get_variable_access_write(), lua_isnoneornil, luaL_argerror(), luaL_checkstring, and luaW_checkvariable().

int game_lua_kernel::intf_set_village_owner ( lua_State L)
private

Sets the owner of a village.

  • Arg 1: map location.
  • Arg 2: integer for the side or empty to remove ownership.

Definition at line 1499 of file game_lua_kernel.cpp.

References board(), gamedata(), lua_isnoneornil, luaL_checkint, luaW_checklocation(), luaW_toboolean(), map(), teams(), and display_context::village_owner().

int game_lua_kernel::intf_shroud_op ( lua_State L,
bool  place_shroud 
)
private
int game_lua_kernel::intf_simulate_combat ( lua_State L)
private

Simulates a combat between two units.

  • Arg 1: attacker userdata.
  • Arg 2: optional weapon index.
  • Arg 3: defender userdata.
  • Arg 4: optional weapon index.
  • Ret 1: attacker results.
  • Ret 2: defender results.
  • Ret 3: info about the attacker weapon.
  • Ret 4: info about the defender weapon.

Definition at line 2868 of file game_lua_kernel.cpp.

References unit::attacks(), unit::get_location(), lua_isnumber(), lua_tointeger, luaL_argerror(), luaW_checkunit(), luaW_pushsimdata(), luaW_pushsimweapon(), and units().

int game_lua_kernel::intf_skip_messages ( lua_State L)
private

Set whether to skip messages Arg 1 (optional) - boolean.

Definition at line 3016 of file game_lua_kernel.cpp.

References game_state::events_manager_, game_state_, lua_isnone, and luaW_toboolean().

int game_lua_kernel::intf_teleport ( lua_State L)
private
int game_lua_kernel::intf_toggle_fog ( lua_State L,
const bool  clear 
)
private

Implements the lifting and resetting of fog via WML.

Keeping affect_normal_fog as false causes only the fog override to be affected. Otherwise, fog lifting will be implemented similar to normal sight (cannot be individually reset and ends at the end of the turn), and fog resetting will, in addition to removing overrides, extend the specified teams' normal fog to all hexes.

Arg 1: (optional) Side number, or list of side numbers Arg 2: List of locations; each is a two-element array or a table with x and y keys Arg 3: (optional) boolean

Definition at line 4406 of file game_lua_kernel.cpp.

References team::add_fog_override(), team::clear_fog(), game_display_, display::invalidate_all(), lua_isboolean, lua_isnumber(), lua_istable, lua_tonumber, luaW_toboolean(), display::recalculate_minimap(), team::refog(), team::remove_fog_override(), and teams().

int game_lua_kernel::intf_view_locked ( lua_State L)
private

Gets whether gamemap scrolling is disabled for the user.

  • Ret 1: boolean.

Definition at line 1304 of file game_lua_kernel.cpp.

References game_display_, lua_pushboolean(), and display::view_locked().

void game_lua_kernel::load_game ( const config level)

Executes the game_events.on_load function and passes to it all the scenario tags not yet handled.

Definition at line 4949 of file game_lua_kernel.cpp.

References config::all_children_range(), is_handled_file_tag(), lua_createtable(), lua_newtable, lua_pushstring(), lua_rawseti(), luaW_getglobal(), luaW_pcall(), luaW_pushconfig(), and lua_kernel_base::mState.

Referenced by initialize().

void game_lua_kernel::log_error ( char const *  msg,
char const *  context = "Lua error" 
)
virtual

Reimplemented from lua_kernel_base.

Definition at line 175 of file game_lua_kernel.cpp.

References lua_kernel_base::log_error(), and lua_chat().

Referenced by run_filter(), and save_game().

void game_lua_kernel::lua_chat ( std::string const &  caption,
std::string const &  msg 
)
private
const gamemap & game_lua_kernel::map ( ) const
void game_lua_kernel::mouse_over_hex_callback ( const map_location loc)
virtual std::string game_lua_kernel::my_name ( )
inlinevirtual

Reimplemented from lua_kernel_base.

Definition at line 193 of file game_lua_kernel.hpp.

Referenced by intf_get_sides().

void game_lua_kernel::push_builtin_effect ( )

Registers a function for use as an effect handler.

Definition at line 5059 of file game_lua_kernel.cpp.

References lua_gettop(), lua_newtable, lua_pushboolean(), lua_pushcclosure(), lua_pushstring(), lua_pushvalue(), lua_rawset(), lua_setmetatable(), and lua_kernel_base::mState.

Referenced by game_lua_kernel().

int game_lua_kernel::return_unit_method ( lua_State L,
char const *  m 
)
bool game_lua_kernel::run_event ( game_events::queued_event const &  ev)

Executes the game_events.on_event function.

Returns false if there was no lua handler for this event

Definition at line 5014 of file game_lua_kernel.cpp.

References lua_pushstring(), luaW_getglobal(), luaW_pcall(), lua_kernel_base::mState, game_events::queued_event::name, and queued_events_.

bool game_lua_kernel::run_filter ( char const *  name,
unit const &  u 
)

Runs a script from a unit filter.

The script is an already compiled function given by its name.

Definition at line 5174 of file game_lua_kernel.cpp.

References unit_map::find(), unit::get_location(), getunitKey, lua_newuserdata(), lua_pushlightuserdata(), lua_rawget(), LUA_REGISTRYINDEX, lua_setmetatable(), lua_kernel_base::mState, units(), and unit_map::iterator_base< iter_types >::valid().

Referenced by terrain_filter::match_internal(), and run_filter().

bool game_lua_kernel::run_filter ( char const *  name,
map_location const &  l 
)

Runs a script from a location filter.

The script is an already compiled function given by its name.

Definition at line 5164 of file game_lua_kernel.cpp.

References lua_pushinteger(), lua_kernel_base::mState, run_filter(), map_location::x, and map_location::y.

bool game_lua_kernel::run_filter ( char const *  name,
int  nArgs 
)

Runs a script from a filter.

The script is an already compiled function given by its name.

Definition at line 5191 of file game_lua_kernel.cpp.

References log_error(), lua_insert(), lua_pop, luaW_getglobal(), luaW_pcall(), luaW_toboolean(), lua_kernel_base::mState, utils::split(), and utils::STRIP_SPACES.

bool game_lua_kernel::run_wml_action ( std::string const &  cmd,
vconfig const &  cfg,
game_events::queued_event const &  ev 
)

Runs a command from an event handler.

Returns
true if there is a handler for the command.
Note
cfg should be either volatile or long-lived since the Lua code may grab it for an arbitrary long time.

Definition at line 5117 of file game_lua_kernel.cpp.

References luaW_getglobal(), luaW_pcall(), luaW_pushvconfig(), lua_kernel_base::mState, and queued_events_.

Referenced by game_events::event_handler::handle_event().

bool game_lua_kernel::run_wml_conditional ( std::string const &  cmd,
vconfig const &  cfg 
)

Runs a command from an event handler.

Returns
true if there is a handler for the command.
Note
cfg should be either volatile or long-lived since the Lua code may grab it for an arbitrary long time.

Definition at line 5139 of file game_lua_kernel.cpp.

References lua_pop, luaL_argerror(), luaW_getglobal(), luaW_pcall(), luaW_pushvconfig(), luaW_toboolean(), and lua_kernel_base::mState.

void game_lua_kernel::save_game ( config cfg)

Executes the game_events.on_save function and adds to cfg the returned tags.

Also flushes the [lua] tags.

Definition at line 4976 of file game_lua_kernel.cpp.

References config::erase(), i, is_handled_file_tag(), log_error(), lua_pop, luaW_getglobal(), luaW_pcall(), luaW_toconfig(), lua_kernel_base::mState, config::ordered_begin(), config::ordered_end(), and config::splice_children().

void game_lua_kernel::select_hex_callback ( const map_location loc)
void game_lua_kernel::set_game_display ( game_display gd)
void game_lua_kernel::set_wml_action ( std::string const &  cmd,
game_events::wml_action::handler  h 
)

Registers a function for use as an action handler.

Definition at line 5097 of file game_lua_kernel.cpp.

References lua_getglobal(), lua_pop, lua_pushcclosure(), lua_pushlightuserdata(), lua_pushstring(), lua_rawget(), lua_rawset(), and lua_kernel_base::mState.

Referenced by game_lua_kernel().

std::string game_lua_kernel::synced_state ( )
private
std::vector< team > & game_lua_kernel::teams ( )
tod_manager & game_lua_kernel::tod_man ( )
private
unit_map & game_lua_kernel::units ( )
private

Friends And Related Function Documentation

friend class game_config_manager
friend

Definition at line 71 of file game_lua_kernel.hpp.

Member Data Documentation

game_display* game_lua_kernel::game_display_
private
game_state& game_lua_kernel::game_state_
private
config game_lua_kernel::level_lua_
private

Definition at line 61 of file game_lua_kernel.hpp.

Referenced by initialize().

int game_lua_kernel::map_locked_

A value != 0 means that the shouldn't remove any units from the map, usually because we are currently operating on a unit& and removing it might cause memory corruptions note that we don't check for the dtor of lua owned units because we assume that we operate on such a unit that the lua function that invoked the operation on that unit (like wesnoth.add_modification, wesnoth.match_unit ..) have a local copy of that lua_unit* userdata in its stack that prevents it from beeing collected.

Definition at line 188 of file game_lua_kernel.hpp.

Referenced by intf_erase_unit(), intf_extract_unit(), intf_put_recall_unit(), intf_put_unit(), map_locker::map_locker(), and map_locker::~map_locker().

play_controller& game_lua_kernel::play_controller_
private
config game_lua_kernel::preload_config
staticprivate

Definition at line 69 of file game_lua_kernel.hpp.

std::vector< config > game_lua_kernel::preload_scripts
staticprivate

Definition at line 68 of file game_lua_kernel.hpp.

std::stack<game_events::queued_event const * > game_lua_kernel::queued_events_
private

Definition at line 63 of file game_lua_kernel.hpp.

Referenced by game_lua_kernel(), get_event_info(), run_event(), and run_wml_action().

reports& game_lua_kernel::reports_
private

Definition at line 53 of file game_lua_kernel.hpp.

Referenced by impl_theme_item(), impl_theme_items_get(), and impl_theme_items_set().


The documentation for this class was generated from the following files: