naev 0.12.6
lvar.h
1/*
2 * See Licensing and Copyright notice in naev.h
3 */
4#pragma once
5
6#include "nlua.h"
7#include "ntime.h"
8#include "nxml.h"
9
10/* similar to Lua vars, but with less variety */
11typedef enum lvar_type_ {
12 LVAR_NIL,
13 LVAR_NUM,
14 LVAR_BOOL,
15 LVAR_STR,
16 LVAR_TIME,
17} lvar_type;
18
24typedef struct lvar_ {
25 char *name;
26 lvar_type type;
27 union {
28 double num;
29 char *str;
30 int b;
31 ntime_t time;
32 } d;
33} lvar;
34
35/*
36 * Creating and stuff.
37 */
38int lvar_addArray( lvar **arr, const lvar *new_var, int sort );
39void lvar_rmArray( lvar **arr, lvar *rm_var );
40void lvar_freeArray( lvar *var );
41lvar *lvar_get( const lvar *arr, const char *str );
42
43/*
44 * Lua stuff.
45 */
46int lvar_push( lua_State *L, const lvar *v );
47lvar lvar_tovar( lua_State *L, const char *name, int idx );
48
49/*
50 * XML save/load.
51 */
52int lvar_save( const lvar *arr, xmlTextWriterPtr writer );
53lvar *lvar_load( xmlNodePtr parent );
int lvar_addArray(lvar **arr, const lvar *new_var, int sort)
Adds a var to a var array.
Definition lvar.c:160
void lvar_rmArray(lvar **arr, lvar *rm_var)
Removes a var from a var array.
Definition lvar.c:187
lvar * lvar_get(const lvar *arr, const char *str)
Gets a lua var by name.
Definition lvar.c:41
void lvar_freeArray(lvar *arr)
Frees a variable array.
Definition lvar.c:145
lvar lvar_tovar(lua_State *L, const char *name, int idx)
Gets a lua variable from an index from a lua state.
Definition lvar.c:86
int lvar_save(const lvar *arr, xmlTextWriterPtr writer)
Saves the mission variables.
Definition lvar.c:200
lvar * lvar_load(xmlNodePtr parent)
Loads the vars from XML file.
Definition lvar.c:241
int lvar_push(lua_State *L, const lvar *v)
Pushes a lua var to a lua state.
Definition lvar.c:56
static const double d[]
Definition rng.c:263
Contains a mission variable.
Definition lvar.h:24
int b
Definition lvar.h:30
lvar_type type
Definition lvar.h:26
ntime_t time
Definition lvar.h:31
double num
Definition lvar.h:28
char * str
Definition lvar.h:29
char * name
Definition lvar.h:25