summaryrefslogtreecommitdiff
path: root/src/script/common/c_converter.cpp
diff options
context:
space:
mode:
authorFoghrye4 <foghrye4@gmail.com>2016-11-14 18:09:59 +0400
committerZeno- <kde.psych@gmail.com>2016-11-15 00:09:59 +1000
commit93e3555eae2deaeca69ee252cfa9cc9c3e0e49ef (patch)
tree9b9b665b97c01f0b281652a85088b336cc4cefde /src/script/common/c_converter.cpp
parent649448a2a91fbf3e944b2f2e739f4e2292af1df0 (diff)
downloadminetest-93e3555eae2deaeca69ee252cfa9cc9c3e0e49ef.tar.gz
minetest-93e3555eae2deaeca69ee252cfa9cc9c3e0e49ef.tar.bz2
minetest-93e3555eae2deaeca69ee252cfa9cc9c3e0e49ef.zip
Adding particle blend, glow and animation (#4705)
Diffstat (limited to 'src/script/common/c_converter.cpp')
-rw-r--r--src/script/common/c_converter.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/script/common/c_converter.cpp b/src/script/common/c_converter.cpp
index f36298915..cfb5e26db 100644
--- a/src/script/common/c_converter.cpp
+++ b/src/script/common/c_converter.cpp
@@ -513,6 +513,28 @@ int getintfield_default(lua_State *L, int table,
return result;
}
+int check_material_type_param(lua_State *L, int table,
+ const char *fieldname, int default_)
+{
+ int material_type_param =
+ getintfield_default(L, table, fieldname, default_);
+ u32 alphaSource = (material_type_param & 0x0000F000) >> 12;
+ u32 modulo = (material_type_param & 0x00000F00) >> 8;
+ u32 srcFact = (material_type_param & 0x000000F0) >> 4;
+ u32 dstFact = material_type_param & 0x0000000F;
+ if (alphaSource <= 3 && modulo <= 4 && srcFact <= 10 && dstFact <= 10) {
+ return material_type_param;
+ } else {
+ std::ostringstream error_text;
+ error_text << "Incorrect material_type_param value ";
+ error_text << "for particle or particle spawner.";
+ error_text << std::endl;
+ throw LuaError(error_text.str());
+ return 0;
+ }
+}
+
+
float getfloatfield_default(lua_State *L, int table,
const char *fieldname, float default_)
{