X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fbadguy%2Fyeti.cpp;h=8d1b49b58b25b75e2bf2d98bbbe0f6dea3f01757;hb=2e163cb10e0a6af504275585e7c31091931dd7b2;hp=f7f8a4d7a38cc8428d790a18a27ae4a9a5b0b4b8;hpb=389f9582664bf94eb3d3170d7a5b2d594b7172ed;p=supertux.git diff --git a/src/badguy/yeti.cpp b/src/badguy/yeti.cpp index f7f8a4d7a..8d1b49b58 100644 --- a/src/badguy/yeti.cpp +++ b/src/badguy/yeti.cpp @@ -62,8 +62,8 @@ Yeti::Yeti(const Reader& reader) : { hit_points = INITIAL_HITPOINTS; countMe = false; - sound_manager->preload("sounds/yeti_gna.wav"); - sound_manager->preload("sounds/yeti_roar.wav"); + SoundManager::current()->preload("sounds/yeti_gna.wav"); + SoundManager::current()->preload("sounds/yeti_roar.wav"); hud_head = Surface::create("images/creatures/yeti/hudlife.png"); } @@ -93,14 +93,12 @@ Yeti::draw(DrawingContext& context) void Yeti::draw_hit_points(DrawingContext& context) { - int i; - if (hud_head) { context.push_transform(); context.set_translation(Vector(0, 0)); - for (i = 0; i < hit_points; ++i) + for (int i = 0; i < hit_points; ++i) { context.draw_surface(hud_head, Vector(BORDER_X + (i * hud_head->get_width()), BORDER_Y + 1), LAYER_FOREGROUND1); } @@ -126,7 +124,7 @@ Yeti::active_update(float elapsed_time) break; case BE_ANGRY: if(state_timer.check()) { - sound_manager->play("sounds/yeti_gna.wav"); + SoundManager::current()->play("sounds/yeti_gna.wav"); physic.set_velocity_y(STOMP_VY); sprite->set_action((dir==RIGHT)?"stomp-right":"stomp-left"); } @@ -205,7 +203,7 @@ void Yeti::take_hit(Player& ) if(safe_timer.started()) return; - sound_manager->play("sounds/yeti_roar.wav"); + SoundManager::current()->play("sounds/yeti_roar.wav"); hit_points--; if(hit_points <= 0) { @@ -214,6 +212,9 @@ void Yeti::take_hit(Player& ) physic.set_velocity_x(0); physic.set_velocity_y(0); + // Set the badguy layer to be above the foremost, so that + // this does not reveal secret tilemaps: + layer = Sector::current()->get_foremost_layer() + 1; state = SQUISHED; state_timer.start(YETI_SQUISH_TIME); set_colgroup_active(COLGROUP_MOVING_ONLY_STATIC); @@ -244,12 +245,11 @@ Yeti::drop_stalactite() Sector* sector = Sector::current(); for(Sector::GameObjects::iterator i = sector->gameobjects.begin(); i != sector->gameobjects.end(); ++i) { - YetiStalactite* stalactite = dynamic_cast (*i); + YetiStalactite* stalactite = dynamic_cast(i->get()); if(stalactite && stalactite->is_hanging()) { - float distancex; if (hit_points >= 3) { // drop stalactites within 3 of player, going out with each jump - distancex = fabsf(stalactite->get_bbox().get_middle().x - player->get_bbox().get_middle().x); + float distancex = fabsf(stalactite->get_bbox().get_middle().x - player->get_bbox().get_middle().x); if(distancex < stomp_count*32) { stalactite->start_shaking(); }