Freeciv-3.3: /fast/freeciv/nightly/main/common/scriptcore/luascript.h File Reference

Freeciv-3.3

Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Functions
luascript.h File Reference
`#include "tolua.h"`
`#include "log.h"`
`#include "support.h"`
`#include "luascript_types.h"`
`#include "luascript_func.h"`
`#include "luascript_signal.h"`

Go to the source code of this file.

## Data Structures

struct | fc_lua

## Macros

#define | LUASCRIPT_ASSERT_CAT(str1, str2) str1 ## str2
#define | LUASCRIPT_ASSERT(check, ...)
#define | LUASCRIPT_CHECK_STATE(L, ...)
#define | LUASCRIPT_CHECK(L, check, msg, ...)
#define | LUASCRIPT_CHECK_ARG(L, check, narg, msg, ...)
#define | LUASCRIPT_CHECK_ARG_NIL(L, value, narg, type, ...)
#define | LUASCRIPT_CHECK_SELF(L, value, ...)

## Typedefs

typedef void(* | luascript_log_func_t) (struct fc_lua *fcl, enum log_level level, const char *format,...) fc__attribute((__format__(__printf__

## Functions

int | luascript_error (lua_State *L, const char *format,...) fc__attribute((__format__(__printf__
int int | luascript_error_vargs (lua_State *L, const char *format, va_list vargs)
int | luascript_arg_error (lua_State *L, int narg, const char *msg)
struct fc_lua * | luascript_new (luascript_log_func_t outputfct, bool secured_environment)
struct fc_lua * | luascript_get_fcl (lua_State *L)
void | luascript_destroy (struct fc_lua *fcl)
void | luascript_log (struct fc_lua *fcl, enum log_level level, const char *format,...) fc__attribute((__format__(__printf__
void void | luascript_log_vargs (struct fc_lua *fcl, enum log_level level, const char *format, va_list args)
void | luascript_push_args (struct fc_lua *fcl, int nargs, enum api_types *parg_types, va_list args)
void | luascript_pop_returns (struct fc_lua *fcl, const char *func_name, int nreturns, enum api_types *preturn_types, va_list args)
bool | luascript_check_function (struct fc_lua *fcl, const char *funcname)
int | luascript_call (struct fc_lua *fcl, int narg, int nret, const char *code)
int | luascript_do_string (struct fc_lua *fcl, const char *str, const char *name)
int | luascript_do_file (struct fc_lua *fcl, const char *filename)
bool | luascript_callback_invoke (struct fc_lua *fcl, const char *callback_name, int nargs, enum api_types *parg_types, va_list args)
void | luascript_remove_exported_object (struct fc_lua *fcl, void *object)
void | luascript_vars_save (struct fc_lua *fcl, struct section_file *file, const char *section)
void | luascript_vars_load (struct fc_lua *fcl, struct section_file *file, const char *section)
const Direction * | luascript_dir (enum direction8)

## Macro Definition Documentation

## ◆ LUASCRIPT_ASSERT

#define LUASCRIPT_ASSERT | ( |  | check,
|  |  | ...
| ) |  |

Definition at line 114 of file luascript.h.

## ◆ LUASCRIPT_ASSERT_CAT

#define LUASCRIPT_ASSERT_CAT | ( |  | str1,
|  |  | str2
| ) |  | str1 ## str2

Definition at line 103 of file luascript.h.

## ◆ LUASCRIPT_CHECK

#define LUASCRIPT_CHECK | ( |  | L,
|  |  | check,
|  |  | msg,
|  |  | ...
| ) |  |

Value:
if (!(check)) { \
luascript_error(L, msg); \
return LUASCRIPT_ASSERT_CAT(, __VA_ARGS__); \
}
incite_cost
char * incite_cost
Definition comments.c:74
LUASCRIPT_ASSERT_CAT
#define LUASCRIPT_ASSERT_CAT(str1, str2)
Definition luascript.h:103

Definition at line 124 of file luascript.h.

## ◆ LUASCRIPT_CHECK_ARG

#define LUASCRIPT_CHECK_ARG | ( |  | L,
|  |  | check,
|  |  | narg,
|  |  | msg,
|  |  | ...
| ) |  |

Value:
if (!(check)) { \
luascript_arg_error(L, narg, msg); \
return LUASCRIPT_ASSERT_CAT(, __VA_ARGS__); \
}

Definition at line 131 of file luascript.h.

## ◆ LUASCRIPT_CHECK_ARG_NIL

#define LUASCRIPT_CHECK_ARG_NIL | ( |  | L,
|  |  | value,
|  |  | narg,
|  |  | type,
|  |  | ...
| ) |  |

Value:
if ((value) == NULL) { \
luascript_arg_error(L, narg, "got 'nil', '" #type "' expected"); \
return LUASCRIPT_ASSERT_CAT(, __VA_ARGS__); \
}
type
GType type
Definition repodlgs.c:1313

Definition at line 138 of file luascript.h.

## ◆ LUASCRIPT_CHECK_SELF

#define LUASCRIPT_CHECK_SELF | ( |  | L,
|  |  | value,
|  |  | ...
| ) |  |

Value:
if ((value) == NULL) { \
luascript_arg_error(L, 2, "got 'nil' for self"); \
return LUASCRIPT_ASSERT_CAT(, __VA_ARGS__); \
}

Definition at line 146 of file luascript.h.

## ◆ LUASCRIPT_CHECK_STATE

#define LUASCRIPT_CHECK_STATE | ( |  | L,
|  |  | ...
| ) |  |

Value:
if (!L) { \
log_error("No lua state available"); \
return LUASCRIPT_ASSERT_CAT(, __VA_ARGS__); \
}

Definition at line 117 of file luascript.h.

## Typedef Documentation

## ◆ luascript_log_func_t

typedef void(* luascript_log_func_t) (struct fc_lua *fcl, enum log_level level, const char *format,...) fc__attribute((__format__(__printf__

Definition at line 39 of file luascript.h.

## Function Documentation

## ◆ luascript_arg_error()

int luascript_arg_error | ( | lua_State * | L,
|  | int | narg,
|  | const char * | msg
| ) |  |

Like script_error, but using a prefix identifying the called lua function: bad argument narg to '[func]': msg

Definition at line 325 of file luascript.c.

## ◆ luascript_call()

int luascript_call | ( | struct fc_lua * | fcl,
|  | int | narg,
|  | int | nret,
|  | const char * | code
| ) |  |

Evaluate a Lua function call or loaded script on the stack. Return nonzero if an error occurred.

If available pass the source code string as code, else NULL.

Will pop function and arguments (1 + narg values) from the stack. Will push nret return values to the stack.

On error, print an error message with traceback. Nothing is pushed to the stack.

Definition at line 579 of file luascript.c.

Referenced by luascript_callback_invoke(), luascript_do_file(), luascript_do_string(), luascript_func_call_valist(), and luascript_vars_save().

## ◆ luascript_callback_invoke()

bool luascript_callback_invoke | ( | struct fc_lua * | fcl,
|  | const char * | callback_name,
|  | int | nargs,
|  | enum api_types * | parg_types,
|  | va_list | args
| ) |  |

Invoke the 'callback_name' Lua function.

Definition at line 658 of file luascript.c.

Referenced by luascript_signal_emit_valist(), and script_client_callback_invoke().

## ◆ luascript_check_function()

bool luascript_check_function | ( | struct fc_lua * | fcl,
|  | const char * | funcname
| ) |  |

Return if the function 'funcname' is define in the lua state 'fcl->state'.

Definition at line 553 of file luascript.c.

Referenced by luascript_func_check().

## ◆ luascript_destroy()

void luascript_destroy | ( | struct fc_lua * | fcl | ) |

Free the scripting data.

Definition at line 387 of file luascript.c.

Referenced by script_client_free(), script_client_init(), script_fcdb_free(), script_server_free(), and script_server_init().

## ◆ luascript_dir()

const Direction * luascript_dir | ( | enum | direction8 | ) |

Definition at line 790 of file luascript.c.

Referenced by api_find_direction(), api_methods_unit_orientation_get(), api_utilities_dir_ccw(), api_utilities_dir_cw(), api_utilities_opposite_dir(), and api_utilities_str2dir().

## ◆ luascript_do_file()

int luascript_do_file | ( | struct fc_lua * | fcl,
|  | const char * | filename
| ) |  |

Parse and execute the script at filename.

Definition at line 638 of file luascript.c.

Referenced by script_client_do_file(), script_fcdb_init(), and script_server_do_file_shared().

## ◆ luascript_do_string()

int luascript_do_string | ( | struct fc_lua * | fcl,
|  | const char * | str,
|  | const char * | name
| ) |  |

lua_dostring replacement with error message showing on errors.

Definition at line 618 of file luascript.c.

Referenced by luascript_vars_load(), script_client_code_load(), script_client_do_string(), script_fcdb_do_string(), script_server_code_load(), and script_server_do_string_shared().

## ◆ luascript_error()

int luascript_error | ( | lua_State * | L,
|  | const char * | format,
|  |  | ...
| ) |  |

## ◆ luascript_error_vargs()

int int luascript_error_vargs | ( | lua_State * | L,
|  | const char * | format,
|  | va_list | vargs
| ) |  |

Internal api error function. Invoking this will cause Lua to stop executing the current context and throw an exception, so to speak.

Definition at line 309 of file luascript.c.

Referenced by luascript_error().

## ◆ luascript_get_fcl()

struct fc_lua * luascript_get_fcl | ( | lua_State * | L | ) |

Get the freeciv lua struct from a lua state.

Definition at line 367 of file luascript.c.

Referenced by api_edit_create_player(), api_edit_create_unit_full(), api_signal_by_index(), api_signal_callback_by_index(), api_signal_connect(), api_signal_defined(), api_signal_remove(), and api_utilities_log_base().

## ◆ luascript_log()

void luascript_log | ( | struct fc_lua * | fcl,
|  | enum log_level | level,
|  | const char * | format,
|  |  | ...
| ) |  |

## ◆ luascript_log_vargs()

void void luascript_log_vargs | ( | struct fc_lua * | fcl,
|  | enum log_level | level,
|  | const char * | format,
|  | va_list | args
| ) |  |

Print a message to the selected output handle.

Definition at line 423 of file luascript.c.

Referenced by luascript_log().

## ◆ luascript_new()

struct fc_lua * luascript_new | ( | luascript_log_func_t | output_fct,
|  | bool | secured_environment
| ) |  |

Initialize the scripting state.

Definition at line 333 of file luascript.c.

Referenced by script_client_init(), script_fcdb_init(), and script_server_init().

## ◆ luascript_pop_returns()

void luascript_pop_returns | ( | struct fc_lua * | fcl,
|  | const char * | func_name,
|  | int | nreturns,
|  | enum api_types * | preturn_types,
|  | va_list | args
| ) |  |

Pop return values from the Lua stack.

Definition at line 443 of file luascript.c.

Referenced by luascript_func_call_valist().

## ◆ luascript_push_args()

void luascript_push_args | ( | struct fc_lua * | fcl,
|  | int | nargs,
|  | enum api_types * | parg_types,
|  | va_list | args
| ) |  |

Push arguments into the Lua stack.

Definition at line 502 of file luascript.c.

Referenced by luascript_callback_invoke(), and luascript_func_call_valist().

## ◆ luascript_remove_exported_object()

void luascript_remove_exported_object | ( | struct fc_lua * | fcl,
|  | void * | object
| ) |  |

Mark any, if exported, full userdata representing 'object' in the current script state as 'Nonexistent'. This changes the type of the lua variable.

Definition at line 701 of file luascript.c.

Referenced by script_client_remove_exported_object(), and script_server_remove_exported_object().

## ◆ luascript_vars_load()

void luascript_vars_load | ( | struct fc_lua * | fcl,
|  | struct section_file * | file,
|  | const char * | section
| ) |  |

Load lua variables from file.

Definition at line 764 of file luascript.c.

Referenced by script_client_vars_load(), and script_server_vars_load().

## ◆ luascript_vars_save()

void luascript_vars_save | ( | struct fc_lua * | fcl,
|  | struct section_file * | file,
|  | const char * | section
| ) |  |

Save lua variables to file.

Definition at line 738 of file luascript.c.

Referenced by script_client_vars_save(), and script_server_vars_save().