From 664ddcac89ecba594a2668fb51b76e47ee61666a Mon Sep 17 00:00:00 2001 From: Xottab-DUTY Date: Fri, 15 Jun 2018 13:40:26 +0500 Subject: [PATCH] ODE: dInfinity is real infinity on x64 now Removed previous code --- Externals/ode/include/ode/config.h | 51 ++++++++++++------------------ src/xrPhysics/Physics.cpp | 2 +- 2 files changed, 21 insertions(+), 32 deletions(-) diff --git a/Externals/ode/include/ode/config.h b/Externals/ode/include/ode/config.h index 6a644f28edb..6fbfa2feae7 100644 --- a/Externals/ode/include/ode/config.h +++ b/Externals/ode/include/ode/config.h @@ -58,40 +58,29 @@ extern "C" { #include - - -#if defined(WIN32) && (defined(MSVC) || defined(MINGW)) - -static union { unsigned char __c[4]; float __f; } __ode_huge_valf = - - {{0,0,0x80,0x7f}}; - -#define _INFINITY4 (__ode_huge_valf.__f) - -static union { unsigned char __c[8]; double __d; } __ode_huge_val = - - {{0,0,0,0,0,0,0xf0,0x7f }}; - -#define _INFINITY8 (__ode_huge_val.__d) - +/* Define the dInfinity macro */ +#ifdef INFINITY +#ifdef dSINGLE +#define dInfinity ((float)INFINITY) #else - -#define _INFINITY8 HUGE_VAL - -#define _INFINITY4 HUGE_VALF - +#define dInfinity ((double)INFINITY) #endif - - - -#if defined(dSINGLE) - -#define dInfinity _INFINITY4 - +#elif defined(HUGE_VAL) +#ifdef dSINGLE +#ifdef HUGE_VALF +#define dInfinity HUGE_VALF #else - -#define dInfinity _INFINITY8 - +#define dInfinity ((float)HUGE_VAL) +#endif +#else +#define dInfinity HUGE_VAL +#endif +#else +#ifdef dSINGLE +#define dInfinity ((float)(1.0/0.0)) +#else +#define dInfinity (1.0/0.0) +#endif #endif diff --git a/src/xrPhysics/Physics.cpp b/src/xrPhysics/Physics.cpp index 8a6e5e4a095..feb73243cc8 100644 --- a/src/xrPhysics/Physics.cpp +++ b/src/xrPhysics/Physics.cpp @@ -248,7 +248,7 @@ IC static int CollideIntoGroup( } if (pushing_neg) - surface.mu = std::numeric_limits::infinity(); + surface.mu = dInfinity; if (do_collide && collided_contacts < MAX_CONTACTS) {