diff options
author | Elias Fleckenstein <54945686+EliasFleckenstein03@users.noreply.github.com> | 2020-11-04 16:57:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-04 16:57:47 +0100 |
commit | 3e16c3a78fff61c20e63ba730d15e94e3bb877b4 (patch) | |
tree | c070350db219f2c4241d22bc31949685c7b42fe9 /src/script/common/c_converter.h | |
parent | 5d9ae5a91c544fc7fbd475decf47cef7e09ef8fc (diff) | |
parent | 6ccb5835ff55d85156be91473c598eca9d6cb9a6 (diff) | |
download | dragonfireclient-3e16c3a78fff61c20e63ba730d15e94e3bb877b4.tar.xz |
Merge branch 'master' into master
Diffstat (limited to 'src/script/common/c_converter.h')
-rw-r--r-- | src/script/common/c_converter.h | 136 |
1 files changed, 76 insertions, 60 deletions
diff --git a/src/script/common/c_converter.h b/src/script/common/c_converter.h index 16d21db3b..a4a7079fd 100644 --- a/src/script/common/c_converter.h +++ b/src/script/common/c_converter.h @@ -17,6 +17,7 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ + /******************************************************************************/ /******************************************************************************/ /* WARNING!!!! do NOT add this header in any include file or any code file */ @@ -35,21 +36,24 @@ extern "C" { #include <lua.h> } -std::string getstringfield_default(lua_State *L, int table, const char *fieldname, - const std::string &default_); -bool getboolfield_default(lua_State *L, int table, const char *fieldname, bool default_); -float getfloatfield_default( - lua_State *L, int table, const char *fieldname, float default_); -int getintfield_default(lua_State *L, int table, const char *fieldname, int default_); +std::string getstringfield_default(lua_State *L, int table, + const char *fieldname, const std::string &default_); +bool getboolfield_default(lua_State *L, int table, + const char *fieldname, bool default_); +float getfloatfield_default(lua_State *L, int table, + const char *fieldname, float default_); +int getintfield_default(lua_State *L, int table, + const char *fieldname, int default_); bool check_field_or_nil(lua_State *L, int index, int type, const char *fieldname); -template <typename T> -bool getintfield(lua_State *L, int table, const char *fieldname, T &result) +template<typename T> +bool getintfield(lua_State *L, int table, + const char *fieldname, T &result) { lua_getfield(L, table, fieldname); bool got = false; - if (check_field_or_nil(L, -1, LUA_TNUMBER, fieldname)) { + if (check_field_or_nil(L, -1, LUA_TNUMBER, fieldname)){ result = lua_tointeger(L, -1); got = true; } @@ -57,8 +61,9 @@ bool getintfield(lua_State *L, int table, const char *fieldname, T &result) return got; } -template <class T> -bool getv3intfield(lua_State *L, int index, const char *fieldname, T &result) +template<class T> +bool getv3intfield(lua_State *L, int index, + const char *fieldname, T &result) { lua_getfield(L, index, fieldname); bool got = false; @@ -71,54 +76,65 @@ bool getv3intfield(lua_State *L, int index, const char *fieldname, T &result) return got; } -v3s16 getv3s16field_default( - lua_State *L, int table, const char *fieldname, v3s16 default_); -bool getstringfield(lua_State *L, int table, const char *fieldname, std::string &result); -size_t getstringlistfield(lua_State *L, int table, const char *fieldname, - std::vector<std::string> *result); -void read_groups(lua_State *L, int index, std::unordered_map<std::string, int> &result); -bool getboolfield(lua_State *L, int table, const char *fieldname, bool &result); -bool getfloatfield(lua_State *L, int table, const char *fieldname, float &result); - -void setstringfield( - lua_State *L, int table, const char *fieldname, const std::string &value); -void setintfield(lua_State *L, int table, const char *fieldname, int value); -void setfloatfield(lua_State *L, int table, const char *fieldname, float value); -void setboolfield(lua_State *L, int table, const char *fieldname, bool value); - -v3f checkFloatPos(lua_State *L, int index); -v3f check_v3f(lua_State *L, int index); -v3s16 check_v3s16(lua_State *L, int index); - -v3f read_v3f(lua_State *L, int index); -v2f read_v2f(lua_State *L, int index); -v2s16 read_v2s16(lua_State *L, int index); -v2s32 read_v2s32(lua_State *L, int index); -video::SColor read_ARGB8(lua_State *L, int index); -bool read_color(lua_State *L, int index, video::SColor *color); -bool is_color_table(lua_State *L, int index); - -aabb3f read_aabb3f(lua_State *L, int index, f32 scale); -v3s16 read_v3s16(lua_State *L, int index); -std::vector<aabb3f> read_aabb3f_vector(lua_State *L, int index, f32 scale); -size_t read_stringlist(lua_State *L, int index, std::vector<std::string> *result); - -void push_float_string(lua_State *L, float value); -void push_v3_float_string(lua_State *L, v3f p); -void push_v2_float_string(lua_State *L, v2f p); -void push_v2s16(lua_State *L, v2s16 p); -void push_v2s32(lua_State *L, v2s32 p); -void push_v3s16(lua_State *L, v3s16 p); -void push_aabb3f(lua_State *L, aabb3f box); -void push_ARGB8(lua_State *L, video::SColor color); -void pushFloatPos(lua_State *L, v3f p); -void push_v3f(lua_State *L, v3f p); -void push_v2f(lua_State *L, v2f p); - -void warn_if_field_exists(lua_State *L, int table, const char *fieldname, - const std::string &message); +v3s16 getv3s16field_default(lua_State *L, int table, + const char *fieldname, v3s16 default_); +bool getstringfield(lua_State *L, int table, + const char *fieldname, std::string &result); +size_t getstringlistfield(lua_State *L, int table, + const char *fieldname, + std::vector<std::string> *result); +void read_groups(lua_State *L, int index, + std::unordered_map<std::string, int> &result); +bool getboolfield(lua_State *L, int table, + const char *fieldname, bool &result); +bool getfloatfield(lua_State *L, int table, + const char *fieldname, float &result); + +void setstringfield(lua_State *L, int table, + const char *fieldname, const std::string &value); +void setintfield(lua_State *L, int table, + const char *fieldname, int value); +void setfloatfield(lua_State *L, int table, + const char *fieldname, float value); +void setboolfield(lua_State *L, int table, + const char *fieldname, bool value); + +v3f checkFloatPos (lua_State *L, int index); +v3f check_v3f (lua_State *L, int index); +v3s16 check_v3s16 (lua_State *L, int index); + +v3f read_v3f (lua_State *L, int index); +v2f read_v2f (lua_State *L, int index); +v2s16 read_v2s16 (lua_State *L, int index); +v2s32 read_v2s32 (lua_State *L, int index); +video::SColor read_ARGB8 (lua_State *L, int index); +bool read_color (lua_State *L, int index, + video::SColor *color); +bool is_color_table (lua_State *L, int index); + +aabb3f read_aabb3f (lua_State *L, int index, f32 scale); +v3s16 read_v3s16 (lua_State *L, int index); +std::vector<aabb3f> read_aabb3f_vector (lua_State *L, int index, f32 scale); +size_t read_stringlist (lua_State *L, int index, + std::vector<std::string> *result); + +void push_float_string (lua_State *L, float value); +void push_v3_float_string(lua_State *L, v3f p); +void push_v2_float_string(lua_State *L, v2f p); +void push_v2s16 (lua_State *L, v2s16 p); +void push_v2s32 (lua_State *L, v2s32 p); +void push_v3s16 (lua_State *L, v3s16 p); +void push_aabb3f (lua_State *L, aabb3f box); +void push_ARGB8 (lua_State *L, video::SColor color); +void pushFloatPos (lua_State *L, v3f p); +void push_v3f (lua_State *L, v3f p); +void push_v2f (lua_State *L, v2f p); + +void warn_if_field_exists(lua_State *L, int table, + const char *fieldname, + const std::string &message); size_t write_array_slice_float(lua_State *L, int table_index, float *data, - v3u16 data_size, v3u16 slice_offset, v3u16 slice_size); -size_t write_array_slice_u16(lua_State *L, int table_index, u16 *data, v3u16 data_size, - v3u16 slice_offset, v3u16 slice_size); + v3u16 data_size, v3u16 slice_offset, v3u16 slice_size); +size_t write_array_slice_u16(lua_State *L, int table_index, u16 *data, + v3u16 data_size, v3u16 slice_offset, v3u16 slice_size); |