From: <hik...@us...> - 2009-05-13 06:12:28
|
Revision: 3482 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3482&view=rev Author: hikerstk Date: 2009-05-13 06:12:26 +0000 (Wed, 13 May 2009) Log Message: ----------- Fixed compilation error on VS (sqrt(int) is ambiguous, since it can take long double, double, float). Modified Paths: -------------- main/branches/irrlicht/src/robots/default_robot.cpp Modified: main/branches/irrlicht/src/robots/default_robot.cpp =================================================================== --- main/branches/irrlicht/src/robots/default_robot.cpp 2009-05-13 00:44:40 UTC (rev 3481) +++ main/branches/irrlicht/src/robots/default_robot.cpp 2009-05-13 06:12:26 UTC (rev 3482) @@ -1174,12 +1174,15 @@ for(i = m_track_sector; total_dist < getVelocityLC().getY(); i = next_hint) { next_hint = i + 1 < DRIVELINE_SIZE ? i + 1 : 0; - - const int x_diff = m_track->m_driveline[i][0] - m_track->m_driveline[next_hint][0]; - const int y_diff = m_track->m_driveline[i][1] - m_track->m_driveline[next_hint][1]; - const float length_2d = sqrt( x_diff*x_diff + y_diff*y_diff ); - - total_dist += length_2d; + // Note that m_driveline[...].getZ() might be undefined and trigger + // an exception when used. So we can't just write + // (m_driveline[i]-m_driveline[next_hint]).length_2d() + Vec3 v; + v.setX(m_track->m_driveline[i].getX() - m_track->m_driveline[next_hint].getX()); + v.setY(m_track->m_driveline[i].getY() - m_track->m_driveline[next_hint].getY()); + // length_2d only uses the X and Y component. + // FIXME: the values of v.length could be pre-computed and saved + total_dist += v.length_2d() + sqrt(i); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |