Disallow int for vm_distance_squared
This commit is contained in:
parent
d8638c6c89
commit
17208cca79
|
@ -127,6 +127,7 @@ class vm_distance_squared
|
|||
{
|
||||
public:
|
||||
fix64 d2;
|
||||
vm_distance_squared(const fix &) = delete;
|
||||
constexpr explicit vm_distance_squared(const fix64 &f2) :
|
||||
d2(f2)
|
||||
{
|
||||
|
@ -166,7 +167,7 @@ public:
|
|||
}
|
||||
static constexpr vm_distance_squared minimum_value()
|
||||
{
|
||||
return vm_distance_squared{0};
|
||||
return vm_distance_squared{static_cast<fix64>(0)};
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -174,7 +175,7 @@ class vm_magnitude_squared : public vm_distance_squared
|
|||
{
|
||||
public:
|
||||
constexpr explicit vm_magnitude_squared(const uint64_t &f2) :
|
||||
vm_distance_squared(f2)
|
||||
vm_distance_squared(static_cast<fix64>(f2))
|
||||
{
|
||||
}
|
||||
};
|
||||
|
|
|
@ -453,14 +453,14 @@ static vm_distance_squared check_vector_to_sphere_1(vms_vector &intp,const vms_v
|
|||
if (vm_vec_dist2(p0, sphere_pos) < sphere_rad_squared)
|
||||
{
|
||||
intp = p0; //don't move at all
|
||||
return vm_distance_squared{1}; // note that we do not calculate a valid collision point. This is up to collision handling.
|
||||
return vm_distance_squared{static_cast<fix64>(1)}; // note that we do not calculate a valid collision point. This is up to collision handling.
|
||||
} else {
|
||||
return vm_distance_squared::minimum_value();
|
||||
}
|
||||
}
|
||||
|
||||
vm_vec_scale_add(intp,p0,dn,int_dist); //calc intersection point
|
||||
return vm_distance_squared{int_dist * int_dist};
|
||||
return vm_distance_squared{static_cast<fix64>(int_dist) * int_dist};
|
||||
}
|
||||
else
|
||||
return vm_distance_squared::minimum_value();
|
||||
|
|
|
@ -1050,7 +1050,7 @@ bool render_compare_context_t::operator()(const distant_object &a, const distant
|
|||
* First check without squaring. If true, the square can be
|
||||
* skipped.
|
||||
*/
|
||||
if (abs_delta_dist_squared < combined_size || abs_delta_dist_squared < (combined_size * combined_size))
|
||||
if (abs_delta_dist_squared < combined_size || abs_delta_dist_squared < (static_cast<fix64>(combined_size) * combined_size))
|
||||
{ //same position
|
||||
|
||||
//these two objects are in the same position. see if one is a fireball
|
||||
|
|
Loading…
Reference in a new issue