Fixed check for Block killing Badguy from below
[supertux.git] / src / object / player.hpp
index 9fcda0d..4c715c7 100644 (file)
@@ -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:
@@ -116,7 +85,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 +94,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;
 
@@ -228,6 +198,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 +227,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; }
@@ -301,6 +282,7 @@ private:
 
   Portable* grabbed_object;
 
+  Sprite* sprite; /**< The main sprite representing Tux */
   Sprite* smalltux_gameover;
   Sprite* smalltux_star;
   Sprite* bigtux_star;
@@ -311,6 +293,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 */