1// SuperTux - End Sequence: Tux walks right
2// Copyright (C) 2007 Christoph Sommer <christoph.sommer@2006.expires.deltadevelopment.de>
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17#include "object/endsequence_walkleft.hpp"
18
19#include "object/player.hpp"
20#include "supertux/screen_manager.hpp"
21#include "supertux/sector.hpp"
22
23EndSequenceWalkLeft::EndSequenceWalkLeft() :
24 EndSequence(),
25 last_x_pos(),
26 endsequence_timer()
27{
28}
29
30EndSequenceWalkLeft::~EndSequenceWalkLeft()
31{
32}
33
34void
35EndSequenceWalkLeft::draw(DrawingContext& /*context*/)
36{
37}
38
39void
40EndSequenceWalkLeft::starting()
41{
42 EndSequence::starting();
43 last_x_pos = -1;
44 endsequence_timer.start(7.3f * ScreenManager::current()->get_speed());
45}
46
47void
48EndSequenceWalkLeft::running(float dt_sec)
49{
50 EndSequence::running(dt_sec);
51 Player& tux = Sector::get().get_player();
52
53 if (tux_may_walk) {
54 end_sequence_controller->press(Control::LEFT);
55 if (int(last_x_pos) == int(tux.get_pos().x)) {
56 end_sequence_controller->press(Control::JUMP);
57 }
58 }
59
60 last_x_pos = tux.get_pos().x;
61
62 if (endsequence_timer.check()) isdone = true;
63}
64
65void
66EndSequenceWalkLeft::stopping()
67{
68 EndSequence::stopping();
69}
70
71/* EOF */
72