X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fplayer.cpp;h=5b965a29064661f1e190226d71db09e7fb1d3851;hb=04a3157ef478169b5a3fc05dae00ed6ee6a1fae2;hp=31cac1807761a38c46529425b3a36ed1e13b6e0a;hpb=3e86b3d0c8c9ed1137e8716fcecbcd0ca67bea7b;p=supertux.git diff --git a/src/object/player.cpp b/src/object/player.cpp index 31cac1807..5b965a290 100644 --- a/src/object/player.cpp +++ b/src/object/player.cpp @@ -51,6 +51,8 @@ #include "object/sprite_particle.hpp" #include "trigger/climbable.hpp" +//#define SWIMMING + static const int TILES_FOR_BUTTJUMP = 3; static const float SHOOTING_TIME = .150f; /// time before idle animation starts @@ -112,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) @@ -539,9 +541,6 @@ Player::do_backflip() { if (!on_ground()) return; - // TODO: we don't have an animation for firetux backflipping, so let's revert to bigtux - set_bonus(GROWUP_BONUS, true); - backflip_direction = (dir == LEFT)?(+1):(-1); backflipping = true; do_jump(-580); @@ -601,11 +600,13 @@ Player::handle_vertical_input() // swimming physic.set_acceleration_y(0); +#ifdef SWIMMING if (swimming) { if (controller->hold(Controller::UP) || controller->hold(Controller::JUMP)) physic.set_acceleration_y(-2000); physic.set_velocity_y(physic.get_velocity_y() * 0.94); } +#endif } void @@ -1022,7 +1023,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); } @@ -1032,6 +1033,7 @@ Player::collision_tile(uint32_t tile_attributes) if(tile_attributes & Tile::HURTS) kill(false); +#ifdef SWIMMING if( swimming ){ if( tile_attributes & Tile::WATER ){ no_water = false; @@ -1045,6 +1047,7 @@ Player::collision_tile(uint32_t tile_attributes) sound_manager->play( "sounds/splash.ogg" ); } } +#endif } void