X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fspecial.cpp;h=594bce30962980c350375f50002c22850f4d1706;hb=e2e9c115fa08a7a22a5e0fd2d2dc451b81524a56;hp=3495017c17dbd0d5e1cff48754dea2e23830f3a2;hpb=c25b4ec4673a3e7d0c7cd5399abfc1cf095c19f0;p=supertux.git diff --git a/src/special.cpp b/src/special.cpp index 3495017c1..594bce309 100644 --- a/src/special.cpp +++ b/src/special.cpp @@ -279,13 +279,18 @@ Upgrade::bump(Player* player) sound_manager->play_sound(sounds[SND_BUMP_UPGRADE], Vector(base.x, base.y)); // determine new direction + Direction old_dir = dir; if (player->base.x + player->base.width/2 > base.x + base.width/2) dir = LEFT; else dir = RIGHT; - // do a little jump and change direction - physic.set_velocity(-physic.get_velocity_x(), 3); + // do a little jump and change direction (if necessary) + if (dir != old_dir) + physic.set_velocity(-physic.get_velocity_x(), 3); + else + physic.set_velocity_y(3); + physic.enable_gravity(true); } @@ -367,8 +372,8 @@ void load_special_gfx() img_star = sprite_manager->load("star"); img_1up = sprite_manager->load("1up"); - img_firebullet = sprite_manager->load("firebullet"); - img_icebullet = sprite_manager->load("icebullet"); + img_firebullet = sprite_manager->load("firebullet"); + img_icebullet = sprite_manager->load("icebullet"); } void free_special_gfx()