X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Ftrigger%2Fsequence_trigger.cpp;h=7491a08b070b1e7f42e270a11bf3396a90abae8c;hb=91039bc631c44989f2e967cc2309d0858503385d;hp=28c4b540f5d12506543fc246a84f47d5b6a404a2;hpb=c0093d25093395cb62fc2526ab42be65a9f015b8;p=supertux.git diff --git a/src/trigger/sequence_trigger.cpp b/src/trigger/sequence_trigger.cpp index 28c4b540f..7491a08b0 100644 --- a/src/trigger/sequence_trigger.cpp +++ b/src/trigger/sequence_trigger.cpp @@ -1,43 +1,41 @@ -// $Id$ -// // SuperTux -// Copyright (C) 2005 Matthias Braun +// 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 2 -// of the License, or (at your option) any later version. +// 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, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -// 02111-1307, USA. - -#include +// along with this program. If not, see . -#include "sequence_trigger.h" -#include "game_session.h" -#include "lisp/lisp.h" -#include "lisp/writer.h" -#include "object_factory.h" +#include "object/player.hpp" +#include "supertux/object_factory.hpp" +#include "trigger/sequence_trigger.hpp" +#include "util/reader.hpp" -SequenceTrigger::SequenceTrigger(const lisp::Lisp& reader) +SequenceTrigger::SequenceTrigger(const Reader& reader) : + triggerevent(), + sequence_name() { reader.get("x", bbox.p1.x); reader.get("y", bbox.p1.y); - float w, h; + 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); @@ -50,25 +48,13 @@ SequenceTrigger::~SequenceTrigger() } void -SequenceTrigger::write(lisp::Writer& 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& , EventType type) +SequenceTrigger::event(Player& player, EventType type) { if(type == triggerevent) { - GameSession::current()->start_sequence(sequence_name); + player.trigger_sequence(sequence_name); } } -IMPLEMENT_FACTORY(SequenceTrigger, "sequencetrigger") +IMPLEMENT_FACTORY(SequenceTrigger, "sequencetrigger"); + +/* EOF */