diff options
author | Saracen <SaracenOne@gmail.com> | 2015-11-18 23:18:10 +0000 |
---|---|---|
committer | Saracen <SaracenOne@gmail.com> | 2015-11-18 23:18:10 +0000 |
commit | dd00452997122029dd2f74a278574d781fd2bf5f (patch) | |
tree | e36f0c62cac499500724c2929100c042972d1a5c /core/variant_op.cpp | |
parent | c1d19ad258139c73e7aa81cf6e1fbd99e1bfe38b (diff) | |
parent | 94fdd01241749cb7a575ed5f9fa4c7bbb286901a (diff) |
Merge branch 'master' of https://github.com/okamstudio/godot into shadow_color
Conflicts:
drivers/gles2/shader_compiler_gles2.cpp
Diffstat (limited to 'core/variant_op.cpp')
-rw-r--r-- | core/variant_op.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/core/variant_op.cpp b/core/variant_op.cpp index 1cdf6d7319..eabd647837 100644 --- a/core/variant_op.cpp +++ b/core/variant_op.cpp @@ -586,7 +586,21 @@ void Variant::evaluate(const Operator& p_op, const Variant& p_a, const Variant& } break; DEFAULT_OP_LOCALMEM_NUM(*,VECTOR3,Vector3); DEFAULT_OP_FAIL(PLANE); - DEFAULT_OP_FAIL(QUAT); + case QUAT: { + + switch(p_b.type) { + case VECTOR3: { + + _RETURN( reinterpret_cast<const Quat*>(p_a._data._mem)->xform( *(const Vector3*)p_b._data._mem) ); + } break; + case QUAT: { + + _RETURN( *reinterpret_cast<const Quat*>(p_a._data._mem) * *reinterpret_cast<const Quat*>(p_b._data._mem) ); + } break; + }; + r_valid=false; + return; + } break; DEFAULT_OP_FAIL(_AABB); case MATRIX3: { @@ -2573,7 +2587,7 @@ bool Variant::in(const Variant& p_index, bool *r_valid) const { String idx=p_index; const String *str=reinterpret_cast<const String*>(_data._mem); - return str->find("idx")!=-1; + return str->find(idx)!=-1; } } break; |