98789cd1a3cbeaef925dbc6a00681cede3973226
[supertux.git] / src / trigger / sequence_trigger.cpp
1 #include <config.h>
2
3 #include "sequence_trigger.h"
4 #include "utils/lispwriter.h"
5 #include "gameloop.h"
6
7 SequenceTrigger::SequenceTrigger(LispReader& reader)
8 {
9   (void) reader;
10   // TODO
11 }
12
13 SequenceTrigger::SequenceTrigger(const Vector& pos, const std::string& sequence)
14 {
15   bbox.set_pos(pos);
16   bbox.set_size(32, 32);
17   sequence_name = sequence;
18   triggerevent = EVENT_TOUCH;
19 }
20
21 SequenceTrigger::~SequenceTrigger()
22 {
23 }
24
25 void
26 SequenceTrigger::write(LispWriter& writer)
27 {
28   writer.start_list("sequencetrigger");
29
30   writer.write_float("x", bbox.p1.x);
31   writer.write_float("y", bbox.p1.y);
32   writer.write_float("width", bbox.get_width());
33   writer.write_float("height", bbox.get_height());
34   writer.write_string("sequence", sequence_name);
35
36   writer.end_list("sequencetrigger");
37 }
38
39 void
40 SequenceTrigger::event(Player& , EventType type)
41 {
42   if(type == triggerevent) {
43     GameSession::current()->start_sequence(sequence_name);
44   }
45 }