X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Ftrigger%2Fclimbable.cpp;h=7ec2af1a0441b86fdeead5bd59ca2059085c066e;hb=764cff772b9eee29259330eeed03462036fa36df;hp=b2a4e4923ed971ddd335b633d4f19691a23756cb;hpb=fea3446f05e1e7673607b835c269d3e8d1929ab3;p=supertux.git diff --git a/src/trigger/climbable.cpp b/src/trigger/climbable.cpp index b2a4e4923..7ec2af1a0 100644 --- a/src/trigger/climbable.cpp +++ b/src/trigger/climbable.cpp @@ -93,8 +93,8 @@ Climbable::draw(DrawingContext& context) if (climbed_by) { context.push_transform(); context.set_translation(Vector(0, 0)); - Vector pos = Vector(0, SCREEN_HEIGHT/2 - gold_text->get_height()/2); - context.draw_center_text(gold_text, "Up we go...", pos, LAYER_GUI); + Vector pos = Vector(0, SCREEN_HEIGHT/2 - normal_font->get_height()/2); + context.draw_center_text(normal_font, _("Up we go..."), pos, LAYER_GUI, Climbable::text_color); context.pop_transform(); } } @@ -103,16 +103,18 @@ void Climbable::event(Player& player, EventType type) { if ((type == EVENT_ACTIVATE) || (activate_try_timer.started())) { - if (may_climb(player)) { - climbed_by = &player; - player.start_climbing(*this); - activate_try_timer.stop(); - } else { - if (type == EVENT_ACTIVATE) activate_try_timer.start(ACTIVATE_TRY_FOR); - if (player.get_bbox().p1.x < get_bbox().p1.x - GRACE_DX) player.add_velocity(Vector(POSITION_FIX_AX,0)); - if (player.get_bbox().p2.x > get_bbox().p2.x + GRACE_DX) player.add_velocity(Vector(-POSITION_FIX_AX,0)); - if (player.get_bbox().p1.y < get_bbox().p1.y - GRACE_DY) player.add_velocity(Vector(0,POSITION_FIX_AY)); - if (player.get_bbox().p2.y > get_bbox().p2.y + GRACE_DY) player.add_velocity(Vector(0,-POSITION_FIX_AY)); + if(player.get_grabbed_object() == NULL){ + if(may_climb(player)) { + climbed_by = &player; + player.start_climbing(*this); + activate_try_timer.stop(); + } else { + if (type == EVENT_ACTIVATE) activate_try_timer.start(ACTIVATE_TRY_FOR); + if (player.get_bbox().p1.x < get_bbox().p1.x - GRACE_DX) player.add_velocity(Vector(POSITION_FIX_AX,0)); + if (player.get_bbox().p2.x > get_bbox().p2.x + GRACE_DX) player.add_velocity(Vector(-POSITION_FIX_AX,0)); + if (player.get_bbox().p1.y < get_bbox().p1.y - GRACE_DY) player.add_velocity(Vector(0,POSITION_FIX_AY)); + if (player.get_bbox().p2.y > get_bbox().p2.y + GRACE_DY) player.add_velocity(Vector(0,-POSITION_FIX_AY)); + } } } if(type == EVENT_LOSETOUCH) {