$OpenBSD: patch-src_celengine_render_cpp,v 1.2 2009/05/06 08:36:41 ajacoutot Exp $

Prevent stack overflow.

--- src/celengine/render.cpp.orig	Wed Apr 23 23:17:16 2008
+++ src/celengine/render.cpp	Wed May  6 10:09:12 2009
@@ -7647,7 +7647,9 @@ void StarRenderer::process(const Star& star, float dis
     nProcessed++;
 
     Point3f starPos = star.getPosition();
-    Vec3f   relPos = starPos - obsPos;
+    Vec3f   relPos((float) ((double) starPos.x - obsPos.x),
+                   (float) ((double) starPos.y - obsPos.y),
+                   (float) ((double) starPos.z - obsPos.z));
     float   orbitalRadius = star.getOrbitalRadius();
     bool    hasOrbit = orbitalRadius > 0.0f;
 
@@ -7861,7 +7863,9 @@ void PointStarRenderer::process(const Star& star, floa
     nProcessed++;
 
     Point3f starPos = star.getPosition();
-    Vec3f   relPos = starPos - obsPos;
+    Vec3f   relPos((float) ((double) starPos.x - obsPos.x),
+                   (float) ((double) starPos.y - obsPos.y),
+                   (float) ((double) starPos.z - obsPos.z));
     float   orbitalRadius = star.getOrbitalRadius();
     bool    hasOrbit = orbitalRadius > 0.0f;
 
