Back to index

supertuxkart  0.5+dfsg1
traffic.cpp
Go to the documentation of this file.
00001 //  $Id: traffic.cpp 2111 2008-05-31 07:04:30Z cosmosninja $
00002 //
00003 //  SuperTuxKart - a fun racing game with go-kart
00004 //  Copyright (C) 2004 Steve Baker <sjbaker1@airmail.net>
00005 //
00006 //  This program is free software; you can redistribute it and/or
00007 //  modify it under the terms of the GNU General Public License
00008 //  as published by the Free Software Foundation; either version 2
00009 //  of the License, or (at your option) any later version.
00010 //
00011 //  This program is distributed in the hope that it will be useful,
00012 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 //  GNU General Public License for more details.
00015 //
00016 //  You should have received a copy of the GNU General Public License
00017 //  along with this program; if not, write to the Free Software
00018 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00019 
00020 #include "kart.hpp"
00021 #include "constants.hpp"
00022 #include "world.hpp"
00023 
00024 inline float sgnsq ( float x ) { return ( x < 0 ) ? -(x * x) : (x * x) ; }
00025 
00026 
00027 void TrafficDriver::update (float dt)
00028 {
00029     /* Steering algorithm */
00030 
00031     /* If moving left-to-right and on the left - or right to left
00032        and on the right - do nothing. */
00033 
00034     sgVec2 track_velocity ;
00035     sgSubVec2 ( track_velocity, m_curr_track_coords, m_last_track_coords ) ;
00036 
00037     if ( ( track_velocity [ 0 ] < 0.0f && m_curr_track_coords [ 0 ] > 0.0f ) ||
00038          ( track_velocity [ 0 ] > 0.0f && m_curr_track_coords [ 0 ] < 0.0f ) )
00039 ;//FIXME        m_velocity.hpr[0] = sgnsq(m_curr_track_coords[0])*3.0f ;
00040     else
00041 //FIXME        m_velocity.hpr[0] = sgnsq(m_curr_track_coords[0])*12.0f ;
00042 
00043 //FIXME    m_velocity.xyz[1]  = TRAFFIC_VELOCITY ;
00044 //FIXME    m_velocity.xyz[2] -= world->getGravity()* dt ;
00045 
00046     if ( m_wheelie_angle != 0.0f )
00047         m_wheelie_angle = 0.0f ;
00048 
00049     Kart::update (dt) ;
00050 }
00051 
00052 //-----------------------------------------------------------------------------
00053 void TrafficDriver::doLapCounting        () {}
00054 //-----------------------------------------------------------------------------
00055 void TrafficDriver::doZipperProcessing   () {}
00056