Removes duplicate content in header file.

Content in the header file of the PresentAI was duplicated.
Removed one of them.


git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@11344 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
wardje 2012-06-28 23:07:52 +00:00
parent 0efce01b24
commit 27b62bddf2

View File

@ -155,160 +155,3 @@ public:
#endif #endif
/* EOF */ /* EOF */
//
// SuperTuxKart - a fun racing game with go-kart
// Copyright (C) 2004-2005 Steve Baker <sjbaker1@airmail.net>
// Copyright (C) 2006-2007 Eduardo Hernandez Munoz
// Copyright (C) 2010 Joerg Henrichs
//
// 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_PRESENT_AI_HPP
#define HEADER_PRESENT_AI_HPP
#include "karts/controller/ai_base_controller.hpp"
class Track;
class LinearWorld;
class QuadGraph;
namespace irr
{
namespace scene
{
class ISceneNode;
}
}
/**
* \ingroup controller
*/
class PresentAI : public AIBaseController
{
private:
/** How the AI uses nitro. */
enum {NITRO_NONE, NITRO_SOME, NITRO_ALL} m_nitro_level;
enum ItemTactic
{
IT_TEN_SECONDS, //Fire after 10 seconds have passed, since the item
//was grabbed.
IT_CALCULATE //Aim carefully, check for enough space for boosters,
//and that other conditions are meet before firing.
};
class CrashTypes
{
public:
bool m_road; //true if we are going to 'crash' with the bounds of the road
int m_kart; //-1 if no crash, pos numbers are the kart it crashes with
CrashTypes() : m_road(false), m_kart(-1) {};
void clear() {m_road = false; m_kart = -1;}
} m_crashes;
/*Difficulty handling variables*/
/** Chance of a false start. */
float m_false_start_probability;
/** The minimum delay time before a AI kart starts. */
float m_min_start_delay;
/** The maximum delay time before an AI kart starts. */
float m_max_start_delay;
/** The actual start delay used. */
float m_start_delay;
/** Minimum number of steps to check. If 0, the AI doesn't even has check
* around the kart, if 1, it checks around the kart always, and more
* than that will check the remaining number of steps in front of the
* kart, always. */
int m_min_steps;
/** If true, the acceleration is decreased when the AI is in a better
* position than all the human players. */
bool m_wait_for_players;
/** The allowed maximum speed in percent of the kart's maximum speed. */
float m_max_handicap_speed;
/** How are items going to be used? */
ItemTactic m_item_tactic;
/** True if the kart should try to pass on a bomb to another kart. */
bool m_handle_bomb;
/** True if the AI should avtively try to make use of slipstream. */
bool m_make_use_of_slipstream;
/*General purpose variables*/
/** Pointer to the closest kart ahead of this kart. NULL if this
* kart is first. */
AbstractKart *m_kart_ahead;
/** Distance to the kart ahead. */
float m_distance_ahead;
/** Pointer to the closest kart behind this kart. NULL if this kart
* is last. */
AbstractKart *m_kart_behind;
/** Distance to the kard behind. */
float m_distance_behind;
/** Time an item has been collected and not used. */
float m_time_since_last_shot;
float m_curve_target_speed;
float m_curve_angle;
float m_time_since_stuck;
int m_start_kart_crash_direction; //-1 = left, 1 = right, 0 = no crash.
/** For debugging purpose: a sphere indicating where the AI
* is targeting at. */
irr::scene::ISceneNode *m_debug_sphere;
/*Functions called directly from update(). They all represent an action
*that can be done, and end up setting their respective m_controls
*variable, except handle_race_start() that isn't associated with any
*specific action (more like, associated with inaction).
*/
void handleRaceStart();
void handleAcceleration(const float dt);
void handleSteering(float dt);
void handleItems(const float dt);
void handleRescue(const float dt);
void handleBraking();
void handleNitroAndZipper();
void computeNearestKarts();
void checkCrashes(int steps, const Vec3& pos);
void findNonCrashingPoint(Vec3 *result);
int calcSteps();
void findCurve();
protected:
virtual unsigned int getNextSector(unsigned int index);
public:
PresentAI(AbstractKart *kart);
~PresentAI();
virtual void update (float delta) ;
virtual void reset ();
};
#endif
/* EOF */