From: Christoph Sommer Date: Fri, 25 May 2007 14:46:35 +0000 (+0000) Subject: Only draw Tux' arm in front of other objects if he's actually holding something ... X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=9ba388a672ff024010e38b09e576edf8730bb454;p=supertux.git Only draw Tux' arm in front of other objects if he's actually holding something (closes issue 147) SVN-Revision: 5014 --- diff --git a/src/object/player.cpp b/src/object/player.cpp index e930279f5..b332caee9 100644 --- a/src/object/player.cpp +++ b/src/object/player.cpp @@ -114,16 +114,16 @@ TuxBodyParts::set_action(std::string action, int loops) } void -TuxBodyParts::draw(DrawingContext& context, const Vector& pos, int layer) +TuxBodyParts::draw(DrawingContext& context, const Vector& pos, int layer, Portable* grabbed_object) { if(head != NULL) - head->draw(context, pos, layer-1); + head->draw(context, pos, layer-2); if(body != NULL) - body->draw(context, pos, layer-3); + body->draw(context, pos, layer-4); if(arms != NULL) - arms->draw(context, pos, layer+10); + arms->draw(context, pos, layer-1 + (grabbed_object?10:0)); if(feet != NULL) - feet->draw(context, pos, layer-2); + feet->draw(context, pos, layer-3); } Player::Player(PlayerStatus* _player_status, const std::string& name) @@ -1026,7 +1026,7 @@ Player::draw(DrawingContext& context) else if (safe_timer.started() && size_t(game_time*40)%2) ; // don't draw Tux else - tux_body->draw(context, get_pos(), layer); + tux_body->draw(context, get_pos(), layer, grabbed_object); } diff --git a/src/object/player.hpp b/src/object/player.hpp index 32d824b3b..f27decd4a 100644 --- a/src/object/player.hpp +++ b/src/object/player.hpp @@ -69,7 +69,7 @@ public: void set_action(std::string action, int loops = -1); void one_time_animation(); - void draw(DrawingContext& context, const Vector& pos, int layer); + void draw(DrawingContext& context, const Vector& pos, int layer, Portable* grabbed_object); Sprite* head; Sprite* body;