X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fplayer.h;h=21a00a2dc22fd4ead6f30ace9ea88b759d0c8c60;hb=5dba61177d71c5572fd29af172fcdab7b1f9a561;hp=362fbc6210013a8e9367a27a39d4c4affcb232bc;hpb=57fbded58117c85dcade4cfe3dbf4bf17af3e63c;p=supertux.git diff --git a/src/player.h b/src/player.h index 362fbc621..21a00a2dc 100644 --- a/src/player.h +++ b/src/player.h @@ -83,6 +83,8 @@ extern Surface* tux_life; extern Sprite* smalltux_gameover; extern Sprite* smalltux_star; extern Sprite* largetux_star; +extern Sprite* growingtux_left; +extern Sprite* growingtux_right; struct PlayerSprite { @@ -112,17 +114,22 @@ class Player : public MovingObject, public Drawable public: enum HurtMode { KILL, SHRINK }; enum Power { NONE_POWER, FIRE_POWER, ICE_POWER }; + enum FallMode { ON_GROUND, JUMPING, TRAMPOLINE_JUMP, FALLING }; player_input_type input; int got_power; int size; bool duck; bool holding_something; + bool dead; DyingType dying; Direction dir; Direction old_dir; + float last_ground_y; + FallMode fall_mode; + bool jumping; bool can_jump; bool butt_jump; @@ -135,6 +142,9 @@ public: Timer safe_timer; Timer frame_timer; Timer kick_timer; + Timer shooting_timer; // used to show the arm when Tux is shooting + Timer dying_timer; + Timer growing_timer; Physic physic; public: @@ -147,21 +157,21 @@ public: void grabdistros(); virtual void action(float elapsed_time); - virtual void draw(ViewPort& viewport, int layer); + virtual void draw(Camera& viewport, int layer); virtual void collision(const MovingObject& other_object, int collision_type); - virtual std::string type() const - { return "Player"; } void collision(void* p_c_object, int c_object); void kill(HurtMode mode); - void is_dying(); - bool is_dead(); void player_remove_powerups(); - void check_bounds(ViewPort& viewport, bool back_scrolling, bool hor_autoscroll); + void check_bounds(Camera& viewport); bool on_ground(); bool under_solid(); - void grow(); + bool tiles_on_air(int tiles); + void grow(bool animate); + void move(const Vector& vector); + bool is_dead() const + { return dead; } private: void init();