// $Id$ // // SuperTuxKart - a fun racing game with go-kart // Copyright (C) 2004-2005 Steve Baker <sjbaker1@airmail.net> // Copyright (C) 2006 Joerg Henrichs, Steve Baker // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 3 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef HEADER_PLAYERKART_H #define HEADER_PLAYERKART_H #include "kart.hpp" #include "player.hpp" class Player; class Camera; /** PlayerKart manages control events from the player and moves them to the Kart */ class PlayerKart : public Kart { private: int m_steer_val, m_steer_val_l, m_steer_val_r; Player *m_player; float m_penalty_time; float m_time_last_crash_sound; Camera *m_camera; void steer(float, int); public: PlayerKart(const std::string& kart_name, int position, Player *_player, const btTransform& init_pos, int player_index); int earlyStartPenalty () {return m_penalty_time>0; } Player *getPlayer () {return m_player; } void update (float); void addMessages (); void action (KartAction action, int value); void handleZipper (); void collectedHerring (const Herring &herring, int add_info=-1); virtual void crashed (Kart *k); virtual void setPosition (int p); virtual void raceFinished (float time); int isPlayerKart () const {return 1;} Camera* getCamera () {return m_camera;} void reset(); }; #endif