#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
}
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)
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);
// 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
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);
}
if(tile_attributes & Tile::HURTS)
kill(false);
+#ifdef SWIMMING
if( swimming ){
if( tile_attributes & Tile::WATER ){
no_water = false;
sound_manager->play( "sounds/splash.ogg" );
}
}
+#endif
}
void