diff -Nurd armagetronad-0.2.8.3.4.orig/src/engine/eCamera.cpp armagetronad-0.2.8.3.4/src/engine/eCamera.cpp
--- armagetronad-0.2.8.3.4.orig/src/engine/eCamera.cpp	2016-11-08 17:12:43.000000000 -0500
+++ armagetronad-0.2.8.3.4/src/engine/eCamera.cpp	2018-08-19 15:50:28.000000000 -0400
@@ -1221,7 +1221,7 @@
         return false;
 }
 
-static inline void makefinite(REAL &x,REAL y=2){if (!finite(x)) x=y;}
+static inline void makefinite(REAL &x,REAL y=2){if (!isfinite(x)) x=y;}
 static inline void makefinite(eCoord &x){makefinite(x.x);makefinite(x.y);}
 
 // Smart camera settings
diff -Nurd armagetronad-0.2.8.3.4.orig/src/engine/eGameObject.cpp armagetronad-0.2.8.3.4/src/engine/eGameObject.cpp
--- armagetronad-0.2.8.3.4.orig/src/engine/eGameObject.cpp	2015-03-11 03:30:30.000000000 -0400
+++ armagetronad-0.2.8.3.4/src/engine/eGameObject.cpp	2018-08-19 15:50:13.000000000 -0400
@@ -165,7 +165,7 @@
 #ifdef DEBUG
     grid->Check();
 #endif
-    if (!finite(dest.x) || !finite(dest.y))
+    if (!isfinite(dest.x) || !isfinite(dest.y))
     {
         st_Breakpoint();
         return;
@@ -182,7 +182,7 @@
     grid->Range(stop.NormSquared());
 
 #ifdef DEBUG
-    if (!finite(stop.x) || !finite(stop.y))
+    if (!isfinite(stop.x) || !isfinite(stop.y))
     {
         st_Breakpoint();
 
diff -Nurd armagetronad-0.2.8.3.4.orig/src/engine/eGrid.cpp armagetronad-0.2.8.3.4/src/engine/eGrid.cpp
--- armagetronad-0.2.8.3.4.orig/src/engine/eGrid.cpp	2011-09-11 06:41:53.000000000 -0400
+++ armagetronad-0.2.8.3.4/src/engine/eGrid.cpp	2018-08-19 15:01:53.000000000 -0400
@@ -726,7 +726,7 @@
     //tJUST_CONTROLLED_PTR< eWall > wal( w );
 
     // sanity check
-    if ( !finite( end.x ) || !finite( end.y ) )
+    if ( !isfinite( end.x ) || !isfinite( end.y ) )
         return start;
 
     Range(end.NormSquared());
diff -Nurd armagetronad-0.2.8.3.4.orig/src/engine/eTimer.cpp armagetronad-0.2.8.3.4/src/engine/eTimer.cpp
--- armagetronad-0.2.8.3.4.orig/src/engine/eTimer.cpp	2011-09-11 06:41:53.000000000 -0400
+++ armagetronad-0.2.8.3.4/src/engine/eTimer.cpp	2018-08-19 15:49:58.000000000 -0400
@@ -323,7 +323,7 @@
         REAL smooth = timeStep * ( .5 + extraSmooth );
         startTimeSmoothedOffset_ = ( startTimeSmoothedOffset_ + startTimeOffset * smooth )/(1 + smooth);
 
-        if ( !finite( startTimeSmoothedOffset_ ) )
+        if ( !isfinite( startTimeSmoothedOffset_ ) )
         {
             // emergency, smoothing the timer produced infinite results
             st_Breakpoint();
diff -Nurd armagetronad-0.2.8.3.4.orig/src/tools/tMath.h armagetronad-0.2.8.3.4/src/tools/tMath.h
--- armagetronad-0.2.8.3.4.orig/src/tools/tMath.h	2011-09-11 06:41:52.000000000 -0400
+++ armagetronad-0.2.8.3.4/src/tools/tMath.h	2018-08-19 15:02:05.000000000 -0400
@@ -43,7 +43,7 @@
 
 inline bool good( REAL f )
 {
-    return finite( f );
+    return isfinite( f );
 }
 
 #endif
diff -Nurd armagetronad-0.2.8.3.4.orig/src/tron/gCycle.cpp armagetronad-0.2.8.3.4/src/tron/gCycle.cpp
--- armagetronad-0.2.8.3.4.orig/src/tron/gCycle.cpp	2011-09-11 06:41:47.000000000 -0400
+++ armagetronad-0.2.8.3.4/src/tron/gCycle.cpp	2018-08-19 15:49:52.000000000 -0400
@@ -110,7 +110,7 @@
 static inline void clamp(REAL &c, REAL min, REAL max){
     tASSERT(min < max);
 
-    if (!finite(c))
+    if (!isfinite(c))
         c = 0;
 
     if (c<min)
@@ -1203,7 +1203,7 @@
     turns 		= other.GetTurns();
 
 #ifdef DEBUG
-    if (!finite(gameTime) || !finite(speed) || !finite(distance))
+    if (!isfinite(gameTime) || !isfinite(speed) || !isfinite(distance))
         st_Breakpoint();
 #endif
     if ( other.Owner() && other.Player() )
@@ -1956,7 +1956,7 @@
     // correct distance
     // distance = dest->distance - DistanceToDestination( *dest );
     // REAL distanceBefore = GetDistance();
-    tASSERT(finite(distance));
+    tASSERT(isfinite(distance));
 
     // delegate
     bool ret = false;
@@ -2392,12 +2392,12 @@
 
 void gCycle::InitAfterCreation(){
 #ifdef DEBUG
-    if (!finite(Speed()))
+    if (!isfinite(Speed()))
         st_Breakpoint();
 #endif
     gCycleMovement::InitAfterCreation();
 #ifdef DEBUG
-    if (!finite(Speed()))
+    if (!isfinite(Speed()))
         st_Breakpoint();
 #endif
     MyInitAfterCreation();
@@ -2876,9 +2876,9 @@
 
 
 bool gCycle::TimestepCore(REAL currentTime, bool calculateAcceleration ){
-    if (!finite(skew))
+    if (!isfinite(skew))
         skew=0;
-    if (!finite(skewDot))
+    if (!isfinite(skewDot))
         skewDot=0;
 
     // eCoord oldpos=pos;
@@ -2921,7 +2921,7 @@
     //if ( 0 )
 
     REAL animts=currentTime-lastTimeAnim;
-    if (animts<0 || !finite(animts))
+    if (animts<0 || !isfinite(animts))
         animts=0;
     else
         lastTimeAnim=currentTime;
@@ -4246,8 +4246,8 @@
     glProgramLocalParameter4fARB_ptr = (glProgramLocalParameter4fARB_Func) SDL_GL_GetProcAddress("glProgramLocalParameter4fARB");
 #endif
 #endif    
-    if (!finite(z) || !finite(pos.x) ||!finite(pos.y)||!finite(dir.x)||!finite(dir.y)
-            || !finite(skew))
+    if (!isfinite(z) || !isfinite(pos.x) ||!isfinite(pos.y)||!isfinite(dir.x)||!isfinite(dir.y)
+            || !isfinite(skew))
         st_Breakpoint();
     if (Alive()){
         //con << "Drawing cycle at " << pos << '\n';
@@ -5518,7 +5518,7 @@
         REAL ratio = (interpolatedDistance - bef->distance)/
                      (aft->distance - bef->distance);
 
-        if (!finite(ratio))
+        if (!isfinite(ratio))
             ratio = 0;
 
         // interpolate when the cycle was at the position the sync message was sent
diff -Nurd armagetronad-0.2.8.3.4.orig/src/tron/gCycleMovement.cpp armagetronad-0.2.8.3.4/src/tron/gCycleMovement.cpp
--- armagetronad-0.2.8.3.4.orig/src/tron/gCycleMovement.cpp	2011-09-11 06:41:47.000000000 -0400
+++ armagetronad-0.2.8.3.4/src/tron/gCycleMovement.cpp	2018-08-19 15:52:06.000000000 -0400
@@ -452,7 +452,7 @@
 static inline bool clamp(REAL &c, REAL min, REAL max){
     tASSERT(min <= max);
 
-    if (!finite(c))
+    if (!isfinite(c))
     {
         c = 0;
         return true;
@@ -2671,7 +2671,7 @@
     windingNumber_          = other.windingNumber_;
     windingNumberWrapped_   = other.windingNumberWrapped_;
 
-    tASSERT(finite(distance));
+    tASSERT(isfinite(distance));
 
     // std::cout << "copy: " << brakingReservoir << ":" << braking << "\n";
 
@@ -2716,7 +2716,7 @@
     brakingReservoir= sync.brakingReservoir;
     // std::cout << "fromsync: " << brakingReservoir << ":" << braking << "\n";
 
-    tASSERT(finite(distance));
+    tASSERT(isfinite(distance));
 
     // reset winding number and acceleration
     this->SetWindingNumberWrapped( Grid()->DirectionWinding(dirDrive) );
@@ -2770,12 +2770,12 @@
 void gCycleMovement::InitAfterCreation( void )
 {
 #ifdef DEBUG
-    if (!finite(verletSpeed_))
+    if (!isfinite(verletSpeed_))
         st_Breakpoint();
 #endif
     eNetGameObject::InitAfterCreation();
 #ifdef DEBUG
-    if (!finite(verletSpeed_))
+    if (!isfinite(verletSpeed_))
         st_Breakpoint();
 #endif
     MyInitAfterCreation();
@@ -3430,7 +3430,7 @@
     clamp(ts, -10, 10);
 
     REAL step=verletSpeed_*ts;
-    tASSERT(finite(step));
+    tASSERT(isfinite(step));
 
     int numTries = 0;
     bool emergency = false;
@@ -3753,8 +3753,8 @@
         }
 #endif
 
-        tASSERT(finite(distance));
-        tASSERT(finite(step));
+        tASSERT(isfinite(distance));
+        tASSERT(isfinite(step));
         distance += step;
         lastTimeAlive_ = currentTime;
     }
@@ -3822,9 +3822,9 @@
                 rubber = rubber_granted;
 
                 // update distance to include the really covered space
-                tASSERT(finite(distance));
+                tASSERT(isfinite(distance));
                 distance += eCoord::F( dirDrive, pos - lastPos )/dirDrive.NormSquared();
-                tASSERT(finite(distance));
+                tASSERT(isfinite(distance));
 
                 throw;
             }
@@ -3934,7 +3934,7 @@
     if ( !sg_verletIntegration.Supported() )
         this->ApplyAcceleration( ts );
 
-    tASSERT(finite(distance));
+    tASSERT(isfinite(distance));
 
     tASSERT( rubber >= 0 );
 
@@ -3990,7 +3990,7 @@
 
     lastTimeAlive_ = lastTime;
 
-    if (!finite(verletSpeed_)){
+    if (!isfinite(verletSpeed_)){
         st_Breakpoint();
         verletSpeed_ = 1;
     }
diff -Nurd armagetronad-0.2.8.3.4.orig/src/tron/gExplosion.cpp armagetronad-0.2.8.3.4/src/tron/gExplosion.cpp
--- armagetronad-0.2.8.3.4.orig/src/tron/gExplosion.cpp	2011-09-11 06:41:47.000000000 -0400
+++ armagetronad-0.2.8.3.4/src/tron/gExplosion.cpp	2018-08-19 15:51:31.000000000 -0400
@@ -41,7 +41,7 @@
 
 static void clamp01(REAL &c)
 {
-    if (!finite(c))
+    if (!isfinite(c))
         c = 0.5;
 
     if (c<0)
diff -Nurd armagetronad-0.2.8.3.4.orig/src/tron/gWall.cpp armagetronad-0.2.8.3.4/src/tron/gWall.cpp
--- armagetronad-0.2.8.3.4.orig/src/tron/gWall.cpp	2015-03-11 03:30:28.000000000 -0400
+++ armagetronad-0.2.8.3.4/src/tron/gWall.cpp	2018-08-19 15:51:22.000000000 -0400
@@ -585,7 +585,7 @@
 }
 
 static void clamp01(REAL &c){
-    if (!finite(c))
+    if (!isfinite(c))
         c = 0.5;
 
     if (c<0)
@@ -1549,10 +1549,10 @@
 
     //w=
 #ifdef DEBUG
-    if (!finite(end.x) || !finite(end.y))
+    if (!isfinite(end.x) || !isfinite(end.y))
         st_Breakpoint();
 
-    if (!finite(beg.x) || !finite(beg.y))
+    if (!isfinite(beg.x) || !isfinite(beg.y))
         st_Breakpoint();
 #endif
 
@@ -1603,7 +1603,7 @@
 		end=beg + dir*(dend-dbegin);
 
 #ifdef DEBUG
-		if (!finite(end.x) || !finite(end.y))
+		if (!isfinite(end.x) || !isfinite(end.y))
 			st_Breakpoint();
 #endif
 
@@ -1652,7 +1652,7 @@
     }
 
 #ifdef DEBUG
-    if (!finite(end.x) || !finite(end.y))
+    if (!isfinite(end.x) || !isfinite(end.y))
         st_Breakpoint();
 #endif
 
@@ -2270,8 +2270,8 @@
     for ( i = coords_.Len() -1 ; i>=0; --i )
     {
         gPlayerWallCoord* coords = &( coords_( i ) );
-        tASSERT( finite( coords[0].Pos ) );
-        tASSERT( finite( coords[0].Time ) );
+        tASSERT( isfinite( coords[0].Pos ) );
+        tASSERT( isfinite( coords[0].Time ) );
     }
 #endif
 }
