Make it easier to deprecate Lua attributes in C++ __index metafunctions
This commit is contained in:
parent
e7ec2fbca2
commit
f4d528f616
2 changed files with 45 additions and 3 deletions
|
@ -207,6 +207,14 @@ int luaW_pcall_internal(lua_State *L, int nArgs, int nRets);
|
|||
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);
|
||||
|
||||
#define deprecate_attrib(name, prefix, level, version, msg) deprecated_message(prefix "." #name, DEP_LEVEL::level, version, msg)
|
||||
|
||||
#define return_deprecated_attrib(type_macro, name, accessor, prefix, level, version, msg) \
|
||||
type_macro(name, ( \
|
||||
deprecate_attrib(name, prefix, level, version, msg), \
|
||||
accessor \
|
||||
))
|
||||
|
||||
#define return_tstring_attrib(name, accessor) \
|
||||
do { \
|
||||
if (strcmp(m, (name)) == 0) { \
|
||||
|
@ -214,6 +222,8 @@ do { \
|
|||
return 1; \
|
||||
} \
|
||||
} while(false)
|
||||
#define return_tstring_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
return_deprecated_attrib(return_tstring_attrib, name, accessor, prefix, level, version, msg)
|
||||
|
||||
#define return_cstring_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -222,6 +232,8 @@ do { \
|
|||
return 1; \
|
||||
} \
|
||||
} while(false)
|
||||
#define return_cstring_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
return_deprecated_attrib(return_cstring_attrib, name, accessor, prefix, level, version, msg)
|
||||
|
||||
#define return_string_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -231,6 +243,8 @@ do { \
|
|||
return 1; \
|
||||
} \
|
||||
} while(false)
|
||||
#define return_string_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
return_deprecated_attrib(return_string_attrib, name, accessor, prefix, level, version, msg)
|
||||
|
||||
#define return_int_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -239,6 +253,8 @@ do { \
|
|||
return 1; \
|
||||
} \
|
||||
} while(false)
|
||||
#define return_int_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
return_deprecated_attrib(return_int_attrib, name, accessor, prefix, level, version, msg)
|
||||
|
||||
#define return_float_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -247,6 +263,8 @@ do { \
|
|||
return 1; \
|
||||
} \
|
||||
} while(false)
|
||||
#define return_float_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
return_deprecated_attrib(return_float_attrib, name, accessor, prefix, level, version, msg)
|
||||
|
||||
#define return_bool_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -255,6 +273,8 @@ do { \
|
|||
return 1; \
|
||||
} \
|
||||
} while(false)
|
||||
#define return_bool_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
return_deprecated_attrib(return_bool_attrib, name, accessor, prefix, level, version, msg)
|
||||
|
||||
#define return_cfg_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -265,6 +285,8 @@ do { \
|
|||
return 1; \
|
||||
} \
|
||||
} while(false)
|
||||
#define return_cfg_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
return_cfg_attrib(name, deprecate_attrib(name, prefix, level, version, msg); accessor)
|
||||
|
||||
#define return_cfgref_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -273,6 +295,8 @@ do { \
|
|||
return 1; \
|
||||
} \
|
||||
} while(false)
|
||||
#define return_cfgref_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
return_deprecated_attrib(return_cfgref_attrib, name, accessor, prefix, level, version, msg)
|
||||
|
||||
#define return_vector_string_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -288,6 +312,8 @@ do { \
|
|||
return 1; \
|
||||
} \
|
||||
} while(false)
|
||||
#define return_vector_string_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
return_deprecated_attrib(return_vector_string_attrib, name, accessor, prefix, level, version, msg)
|
||||
|
||||
#define modify_tstring_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -297,6 +323,8 @@ do { \
|
|||
return 0; \
|
||||
} \
|
||||
} while(false)
|
||||
#define modify_tstring_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
modify_tstring_attrib(name, deprecate_attrib(name, prefix, level, version, msg); accessor)
|
||||
|
||||
#define modify_string_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -306,6 +334,8 @@ do { \
|
|||
return 0; \
|
||||
} \
|
||||
} while(false)
|
||||
#define modify_string_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
modify_string_attrib(name, deprecate_attrib(name, prefix, level, version, msg); accessor)
|
||||
|
||||
#define modify_int_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -315,6 +345,8 @@ do { \
|
|||
return 0; \
|
||||
} \
|
||||
} while(false)
|
||||
#define modify_int_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
modify_int_attrib(name, deprecate_attrib(name, prefix, level, version, msg); accessor)
|
||||
|
||||
#define modify_int_attrib_check_range(name, accessor, allowed_min, allowed_max) \
|
||||
do { \
|
||||
|
@ -325,6 +357,8 @@ do { \
|
|||
return 0; \
|
||||
} \
|
||||
} while(false)
|
||||
#define modify_int_attrib_check_range_deprecated(name, prefix, level, version, msg, accessor, allowed_min, allowed_max) \
|
||||
modify_int_attrib_check_range(name, deprecate_attrib(name, prefix, level, version, msg); accessor, allowed_min, allowed_max)
|
||||
|
||||
#define modify_float_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -334,6 +368,8 @@ do { \
|
|||
return 0; \
|
||||
} \
|
||||
} while(false)
|
||||
#define modify_float_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
modify_float_attrib(name, deprecate_attrib(name, prefix, level, version, msg); accessor)
|
||||
|
||||
#define modify_float_attrib_check_range(name, accessor, allowed_min, allowed_max) \
|
||||
do { \
|
||||
|
@ -344,6 +380,8 @@ do { \
|
|||
return 0; \
|
||||
} \
|
||||
} while(false)
|
||||
#define modify_float_attrib_check_range_deprecated(name, prefix, level, version, msg, accessor, allowed_min, allowed_max) \
|
||||
modify_float_attrib_check_range(name, deprecate_attrib(name, prefix, level, version, msg); accessor, allowed_min, allowed_max)
|
||||
|
||||
#define modify_bool_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -353,6 +391,8 @@ do { \
|
|||
return 0; \
|
||||
} \
|
||||
} while(false)
|
||||
#define modify_bool_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
modify_bool_attrib(name, deprecate_attrib(name, prefix, level, version, msg); accessor)
|
||||
|
||||
#define modify_cfg_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -362,6 +402,8 @@ do { \
|
|||
return 0; \
|
||||
} \
|
||||
} while(false)
|
||||
#define modify_cfg_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
modify_cfg_attrib(name, deprecate_attrib(name, prefix, level, version, msg); accessor)
|
||||
|
||||
#define modify_vector_string_attrib(name, accessor) \
|
||||
do { \
|
||||
|
@ -381,3 +423,5 @@ do { \
|
|||
return 0; \
|
||||
} \
|
||||
} while(false)
|
||||
#define modify_vector_string_attrib_deprecated(name, prefix, level, version, msg, accessor) \
|
||||
modify_vector_string_attrib(name, deprecate_attrib(name, prefix, level, version, msg); accessor)
|
||||
|
|
|
@ -974,9 +974,7 @@ int lua_kernel_base::impl_game_config_get(lua_State* L)
|
|||
return_int_attrib("recall_cost", game_config::recall_cost);
|
||||
return_int_attrib("kill_experience", game_config::kill_experience);
|
||||
return_int_attrib("combat_experience", game_config::combat_experience);
|
||||
return_string_attrib("version",
|
||||
(deprecated_message("wesnoth.game_config.version", DEP_LEVEL::INDEFINITE, "1.17", "Use version.current() instead"),
|
||||
game_config::wesnoth_version.str()));
|
||||
return_string_attrib_deprecated("version", "wesnoth.game_config", INDEFINITE, "1.17", "Use version.current() instead", game_config::wesnoth_version.str());
|
||||
return_bool_attrib("debug", game_config::debug);
|
||||
return_bool_attrib("debug_lua", game_config::debug_lua);
|
||||
return_bool_attrib("strict_lua", game_config::strict_lua);
|
||||
|
|
Loading…
Add table
Reference in a new issue