#include <iostream>
#include <cassert>
-#include "gettext.h"
-#include "sprite/sprite_manager.h"
-#include "player.h"
-#include "tile.h"
-#include "sprite/sprite.h"
-#include "sector.h"
-#include "resources.h"
-#include "video/screen.h"
-#include "statistics.h"
-#include "game_session.h"
-#include "object/tilemap.h"
-#include "object/camera.h"
-#include "object/gameobjs.h"
-#include "object/portable.h"
-#include "trigger/trigger_base.h"
-#include "control/joystickkeyboardcontroller.h"
-#include "main.h"
+#include "gettext.hpp"
+#include "sprite/sprite_manager.hpp"
+#include "audio/sound_manager.hpp"
+#include "player.hpp"
+#include "tile.hpp"
+#include "sprite/sprite.hpp"
+#include "sector.hpp"
+#include "resources.hpp"
+#include "video/screen.hpp"
+#include "statistics.hpp"
+#include "game_session.hpp"
+#include "object/tilemap.hpp"
+#include "object/camera.hpp"
+#include "object/gameobjs.hpp"
+#include "object/portable.hpp"
+#include "trigger/trigger_base.hpp"
+#include "control/joystickkeyboardcontroller.hpp"
+#include "main.hpp"
static const int TILES_FOR_BUTTJUMP = 3;
static const float SHOOTING_TIME = .150;
// let's skid!
if(fabs(vx)>SKID_XM && !skidding_timer.started()) {
skidding_timer.start(SKID_TIME);
- sound_manager->play_sound("skid");
- // dust some partcles
+ sound_manager->play("sounds/skid.wav");
+ // dust some particles
Sector::current()->add_object(
new Particles(
Vector(bbox.p1.x + (dir == RIGHT ? bbox.get_width() : 0),
can_flap = false;
flaps_nb = 0; // Ricardo's flapping
if (is_big())
- sound_manager->play_sound("bigjump");
+ sound_manager->play("sounds/bigjump.wav");
else
- sound_manager->play_sound("jump");
+ sound_manager->play("sounds/jump.wav");
} else if(!controller->hold(Controller::JUMP)) { // Let go of jump key
if (!flapping && !duck && !falling_from_flap && !on_ground()) {
can_flap = true;
void
Player::set_bonus(BonusType type, bool animate)
{
- if(player_status->bonus == type)
+ if(player_status->bonus >= type)
return;
if(player_status->bonus == NO_BONUS) {
get_pos(), layer);
}
}
- else if (safe_timer.started() && size_t(global_time*40)%2)
+ else if (safe_timer.started() && size_t(game_time*40)%2)
; // don't draw Tux
else
tux_body->draw(context, get_pos(), layer);
// Draw blinking star overlay
if (invincible_timer.started() &&
(invincible_timer.get_timeleft() > TUX_INVINCIBLE_TIME_WARNING
- || size_t(global_time*20)%2)
+ || size_t(game_time*20)%2)
&& !dying)
{
if (!is_big() || duck)
}
if(other.get_flags() & FLAG_SOLID) {
+ TileMap* tilemap = dynamic_cast<TileMap*> (&other);
+ if(tilemap) {
+ const TilemapCollisionHit* thit =
+ static_cast<const TilemapCollisionHit*> (&hit);
+ printf("Tileattrs. %d\n", thit->tileflags);
+ if(thit->tileflags & Tile::SPIKE)
+ kill(SHRINK);
+
+ if(! (thit->tileflags & Tile::SOLID))
+ return CONTINUE;
+ }
+
if(hit.normal.y < 0) { // landed on floor?
if (physic.get_velocity_y() < 0)
physic.set_velocity_y(0);
void
Player::make_invincible()
{
- sound_manager->play_sound("invincible");
+ sound_manager->play("sounds/invincible.wav");
invincible_timer.start(TUX_INVINCIBLE_TIME);
Sector::current()->play_music(HERRING_MUSIC);
}
safe_timer.get_timeleft() > 0 || invincible_timer.get_timeleft() > 0)
return;
- sound_manager->play_sound("hurt");
+ sound_manager->play("sounds/hurt.wav");
physic.set_velocity_x(0);