#303: Typo fixes from mathnerd314
[supertux.git] / src / object / player.hpp
index 9fcda0d..c4e0dbf 100644 (file)
@@ -44,7 +44,7 @@ class Climbable;
 
 /* Times: */
 static const float TUX_SAFE_TIME = 1.8f;
-static const float TUX_INVINCIBLE_TIME = 10.0f;
+static const float TUX_INVINCIBLE_TIME = 14.0f;
 static const float TUX_INVINCIBLE_TIME_WARNING = 2.0f;
 static const float GROWING_TIME = 0.35f;
 static const int GROWING_FRAMES = 7;
@@ -52,37 +52,6 @@ static const int GROWING_FRAMES = 7;
 class Camera;
 class PlayerStatus;
 
-extern Surface* growingtux_left[GROWING_FRAMES];
-extern Surface* growingtux_right[GROWING_FRAMES];
-
-class TuxBodyParts
-{
-public:
-  TuxBodyParts()
-    : head(0), body(0), arms(0), feet(0)
-  { }
-  ~TuxBodyParts() {
-    delete head;
-    delete body;
-    delete arms;
-    delete feet;
-  }
-
-  void set_action(std::string action, int loops = -1);
-  void one_time_animation();
-  void draw(DrawingContext& context, const Vector& pos, int layer, Portable* grabbed_object);
-
-  Sprite* head;
-  Sprite* body;
-  Sprite* arms;
-  Sprite* feet;
-};
-
-extern TuxBodyParts* small_tux;
-extern TuxBodyParts* big_tux;
-extern TuxBodyParts* fire_tux;
-extern TuxBodyParts* ice_tux;
-
 class Player : public MovingObject, public UsesPhysic, public Scripting::Player, public ScriptInterface
 {
 public:
@@ -101,10 +70,11 @@ private:
   bool dying;
   bool backflipping;
   int  backflip_direction;
-  Direction peeking;
+  Direction peekingX, peekingY;
   bool swimming;
   float speedlimit;
   Controller* scripting_controller_old; /**< Saves the old controller while the scripting_controller is used */
+  bool jump_early_apex;
 
 public:
   Direction dir;
@@ -116,7 +86,8 @@ public:
   bool on_ground_flag;
   bool jumping;
   bool can_jump;
-  bool butt_jump;
+  bool wants_buttjump;
+  bool does_buttjump;
 
   Timer invincible_timer;
   Timer skidding_timer;
@@ -124,7 +95,7 @@ public:
   Timer kick_timer;
   Timer shooting_timer;   // used to show the arm when Tux is shooting
   Timer dying_timer;
-  Timer growing_timer;
+  bool growing;
   Timer idle_timer;
   Timer backflip_timer;
 
@@ -159,9 +130,14 @@ public:
   {
     return dying;
   }
-  Direction peeking_direction() const
+  Direction peeking_direction_x() const
   {
-    return peeking;
+    return peekingX;
+  }
+
+  Direction peeking_direction_y() const
+  {
+    return peekingY;
   }
 
   void kill(bool completely);
@@ -220,7 +196,7 @@ public:
   void do_jump(float yspeed);
 
   /**
-   * Adds velocity to the player (be carefull when using this)
+   * Adds velocity to the player (be careful when using this)
    */
   void add_velocity(const Vector& velocity);
 
@@ -228,6 +204,11 @@ public:
    * Adds velocity to the player until given end speed is reached
    */
   void add_velocity(const Vector& velocity, const Vector& end_speed);
+  
+  /**
+   * Returns the current velocity of the player
+   */
+  Vector get_velocity();
 
   void bounce(BadGuy& badguy);
 
@@ -252,6 +233,12 @@ public:
   void set_ghost_mode(bool enable);
 
   /**
+   * Switches edit mode on/off.
+   * In edit mode, Tux will enter ghost_mode instead of dying.
+   */
+  void set_edit_mode(bool enable);
+
+  /**
    * Returns whether ghost mode is currently enabled
    */
   bool get_ghost_mode() { return ghost_mode; }
@@ -292,6 +279,9 @@ private:
   void deactivate();
   void walk(float speed);
 
+  void do_jump_apex();
+  void early_jump_apex();
+
   /**
    * slows Tux down a little, based on where he's standing
    */
@@ -301,6 +291,7 @@ private:
 
   Portable* grabbed_object;
 
+  Sprite* sprite; /**< The main sprite representing Tux */
   Sprite* smalltux_gameover;
   Sprite* smalltux_star;
   Sprite* bigtux_star;
@@ -311,6 +302,7 @@ private:
   void try_grab();
 
   bool ghost_mode; /**< indicates if Tux should float around and through solid objects */
+  bool edit_mode; /**< indicates if Tux should switch to ghost mode rather than dying */
 
   Timer unduck_hurt_timer; /**< if Tux wants to stand up again after ducking and cannot, this timer is started */