diff options
Diffstat (limited to 'core/variant_call.cpp')
| -rw-r--r-- | core/variant_call.cpp | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/core/variant_call.cpp b/core/variant_call.cpp index c48336d2f..7dd0eb8a0 100644 --- a/core/variant_call.cpp +++ b/core/variant_call.cpp @@ -285,6 +285,36 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var VCALL_LOCALMEM1R(String,pad_decimals); VCALL_LOCALMEM1R(String,pad_zeros); + static void _call_String_to_ascii(Variant& r_ret,Variant& p_self,const Variant** p_args) { + + String *s = reinterpret_cast<String*>(p_self._data._mem); + CharString charstr = s->ascii(); + + ByteArray retval; + size_t len = charstr.length(); + retval.resize(len); + ByteArray::Write w = retval.write(); + copymem(w.ptr(), charstr.ptr(), len); + w = DVector<uint8_t>::Write(); + + r_ret = retval; + } + + static void _call_String_to_utf8(Variant& r_ret,Variant& p_self,const Variant** p_args) { + + String *s = reinterpret_cast<String*>(p_self._data._mem); + CharString charstr = s->utf8(); + + ByteArray retval; + size_t len = charstr.length(); + retval.resize(len); + ByteArray::Write w = retval.write(); + copymem(w.ptr(), charstr.ptr(), len); + w = DVector<uint8_t>::Write(); + + r_ret = retval; + } + VCALL_LOCALMEM0R(Vector2,normalized); VCALL_LOCALMEM0R(Vector2,length); @@ -720,6 +750,12 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var r_ret=Rect2(*p_args[0],*p_args[1],*p_args[2],*p_args[3]); } + static void Matrix32_init2(Variant& r_ret,const Variant** p_args) { + + Matrix32 m(*p_args[0], *p_args[1]); + r_ret=m; + } + static void Matrix32_init3(Variant& r_ret,const Variant** p_args) { Matrix32 m; @@ -1215,9 +1251,10 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl ADDFUNC0(STRING,STRING,String,capitalize,varray()); ADDFUNC2(STRING,STRING_ARRAY,String,split,STRING,"divisor",BOOL,"allow_empty",varray(true)); ADDFUNC2(STRING,REAL_ARRAY,String,split_floats,STRING,"divisor",BOOL,"allow_empty",varray(true)); - ADDFUNC0(STRING,STRING,String,to_upper,varray()); + ADDFUNC0(STRING,STRING,String,to_upper,varray()); ADDFUNC0(STRING,STRING,String,to_lower,varray()); + ADDFUNC1(STRING,STRING,String,left,INT,"pos",varray()); ADDFUNC1(STRING,STRING,String,right,INT,"pos",varray()); ADDFUNC0(STRING,STRING,String,strip_edges,varray()); @@ -1249,6 +1286,10 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl ADDFUNC1(STRING,STRING,String,pad_decimals,INT,"digits",varray()); ADDFUNC1(STRING,STRING,String,pad_zeros,INT,"digits",varray()); + ADDFUNC0(STRING,STRING,String,to_ascii,varray()); + ADDFUNC0(STRING,STRING,String,to_utf8,varray()); + + ADDFUNC0(VECTOR2,VECTOR2,Vector2,normalized,varray()); ADDFUNC0(VECTOR2,REAL,Vector2,length,varray()); ADDFUNC0(VECTOR2,REAL,Vector2,atan2,varray()); @@ -1509,6 +1550,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl _VariantCall::add_constructor(_VariantCall::Rect2_init1,Variant::RECT2,"pos",Variant::VECTOR2,"size",Variant::VECTOR2); _VariantCall::add_constructor(_VariantCall::Rect2_init2,Variant::RECT2,"x",Variant::REAL,"y",Variant::REAL,"width",Variant::REAL,"height",Variant::REAL); + _VariantCall::add_constructor(_VariantCall::Matrix32_init2,Variant::MATRIX32,"rot",Variant::REAL,"pos",Variant::VECTOR2); _VariantCall::add_constructor(_VariantCall::Matrix32_init3,Variant::MATRIX32,"x_axis",Variant::VECTOR2,"y_axis",Variant::VECTOR2,"origin",Variant::VECTOR2); _VariantCall::add_constructor(_VariantCall::Vector3_init1,Variant::VECTOR3,"x",Variant::REAL,"y",Variant::REAL,"z",Variant::REAL); |
