summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/globals.cpp2
-rw-r--r--core/hashfuncs.h5
-rw-r--r--core/math/math_2d.cpp2
-rw-r--r--core/variant.cpp14
4 files changed, 9 insertions, 14 deletions
diff --git a/core/globals.cpp b/core/globals.cpp
index b822f52f15..bef40ff330 100644
--- a/core/globals.cpp
+++ b/core/globals.cpp
@@ -54,7 +54,7 @@ String Globals::localize_path(const String& p_path) const {
if (resource_path=="")
return p_path; //not initialied yet
- if (p_path.begins_with("res://") || p_path.begins_with("user://"))
+ if (p_path.begins_with("res://") || p_path.begins_with("user://") || p_path.is_abs_path())
return p_path.simplify_path();
diff --git a/core/hashfuncs.h b/core/hashfuncs.h
index a917ee5edb..6c029a3458 100644
--- a/core/hashfuncs.h
+++ b/core/hashfuncs.h
@@ -74,7 +74,10 @@ static inline uint32_t hash_djb2_one_float(float p_in,uint32_t p_prev=5381) {
float f;
uint32_t i;
} u;
- u.f=p_in;
+
+ // handle -0 case
+ if (p_in==0.0f) u.f=0.0f;
+ else u.f=p_in;
return ((p_prev<<5)+p_prev)+u.i;
}
diff --git a/core/math/math_2d.cpp b/core/math/math_2d.cpp
index 2cc11aa738..e616f05914 100644
--- a/core/math/math_2d.cpp
+++ b/core/math/math_2d.cpp
@@ -424,7 +424,7 @@ Matrix32 Matrix32::inverse() const {
void Matrix32::affine_invert() {
- float det = elements[0][0]*elements[1][1] - elements[1][0]*elements[0][1];
+ float det = basis_determinant();
ERR_FAIL_COND(det==0);
float idet = 1.0 / det;
diff --git a/core/variant.cpp b/core/variant.cpp
index a78c07d819..b2afc9d080 100644
--- a/core/variant.cpp
+++ b/core/variant.cpp
@@ -429,6 +429,7 @@ bool Variant::can_convert(Variant::Type p_type_from,Variant::Type p_type_to) {
return true;
i++;
}
+
} else if (invalid_types) {
@@ -439,6 +440,8 @@ bool Variant::can_convert(Variant::Type p_type_from,Variant::Type p_type_to) {
return false;
i++;
}
+
+ return true;
}
return false;
@@ -457,7 +460,6 @@ bool Variant::can_convert_strict(Variant::Type p_type_from,Variant::Type p_type_
};
const Type *valid_types=NULL;
- const Type *invalid_types=NULL;
switch(p_type_to) {
case BOOL: {
@@ -679,16 +681,6 @@ bool Variant::can_convert_strict(Variant::Type p_type_from,Variant::Type p_type_
return true;
i++;
}
- } else if (invalid_types) {
-
-
- int i=0;
- while(invalid_types[i]!=NIL) {
-
- if (p_type_from==invalid_types[i])
- return false;
- i++;
- }
}
return false;