X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Ftrigger%2Fsequence_trigger.cpp;h=0398e5fea7a3a0566b4d9d55b6b88c7c655c18bc;hb=ce72d3661ad983b652e742baeb3bce2691b532aa;hp=e173457a7e500a159b91b08a6c2e7d72344dc182;hpb=d46c78c842ab4090a3f46e560c891234167f124b;p=supertux.git diff --git a/src/trigger/sequence_trigger.cpp b/src/trigger/sequence_trigger.cpp index e173457a7..0398e5fea 100644 --- a/src/trigger/sequence_trigger.cpp +++ b/src/trigger/sequence_trigger.cpp @@ -1,17 +1,41 @@ -#include - -#include "sequence_trigger.h" -#include "utils/lispwriter.h" -#include "gameloop.h" - -SequenceTrigger::SequenceTrigger(LispReader& reader, - const std::string& sequence) +// SuperTux +// Copyright (C) 2006 Matthias Braun +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#include "object/player.hpp" +#include "supertux/object_factory.hpp" +#include "trigger/sequence_trigger.hpp" +#include "util/reader.hpp" + +SequenceTrigger::SequenceTrigger(const Reader& reader) : + triggerevent(), + sequence_name() { - // TODO + reader.get("x", bbox.p1.x); + reader.get("y", bbox.p1.y); + float w = 0, h = 0; + reader.get("width", w); + reader.get("height", h); + bbox.set_size(w, h); + reader.get("sequence", sequence_name); + triggerevent = EVENT_TOUCH; } -SequenceTrigger::SequenceTrigger(const Vector& pos, - const std::string& sequence) +SequenceTrigger::SequenceTrigger(const Vector& pos, const std::string& sequence) : + triggerevent(), + sequence_name() { bbox.set_pos(pos); bbox.set_size(32, 32); @@ -24,23 +48,11 @@ SequenceTrigger::~SequenceTrigger() } void -SequenceTrigger::write(LispWriter& writer) -{ - writer.start_list("sequencetrigger"); - - writer.write_float("x", bbox.p1.x); - writer.write_float("y", bbox.p1.y); - writer.write_float("width", bbox.get_width()); - writer.write_float("height", bbox.get_height()); - writer.write_string("sequence", sequence_name); - - writer.end_list("sequencetrigger"); -} - -void SequenceTrigger::event(Player& player, EventType type) { if(type == triggerevent) { - GameSession::current()->start_sequence(sequence_name); + player.trigger_sequence(sequence_name); } } + +/* EOF */