X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fscripting%2Ffloating_image.cpp;h=1cb0c02be3901e2f79aa5de1d02ce47b8cd80076;hb=7a0031e8f250c852743709ab06ecafe1896eefbe;hp=c0b1201e506d2dc2eda2fca7d2a4d5ff7858479e;hpb=f27ec33980c31a595f497d85b8ddee17c451975f;p=supertux.git diff --git a/src/scripting/floating_image.cpp b/src/scripting/floating_image.cpp index c0b1201e5..1cb0c02be 100644 --- a/src/scripting/floating_image.cpp +++ b/src/scripting/floating_image.cpp @@ -1,24 +1,50 @@ +// $Id$ +// +// 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 2 +// 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 #include +#include #include "floating_image.hpp" #include "sector.hpp" #include "object/floating_image.hpp" +#include "worldmap/worldmap.hpp" namespace Scripting { FloatingImage::FloatingImage(const std::string& spritefile) { - assert(Sector::current() != NULL); - floating_image = new _FloatingImage(spritefile); - Sector::current()->add_object(floating_image); + using namespace WorldMapNS; + + floating_image = new _FloatingImage(spritefile); + if(Sector::current() != NULL) { + Sector::current()->add_object(floating_image.get()); + } else if(WorldMap::current() != NULL) { + WorldMap::current()->add_object(floating_image.get()); + } else { + throw new std::runtime_error("Neither sector nor worldmap active"); + } } FloatingImage::~FloatingImage() { floating_image->remove_me(); - // no delete here, Sector will do that } void @@ -75,4 +101,29 @@ FloatingImage::set_visible(bool visible) floating_image->set_visible(visible); } +void +FloatingImage::set_action(const std::string& action) +{ + floating_image->set_action(action); +} + +std::string +FloatingImage::get_action() +{ + return floating_image->get_action(); +} + +void +FloatingImage::fade_in(float fadetime) +{ + floating_image->fade_in(fadetime); +} + +void +FloatingImage::fade_out(float fadetime) +{ + floating_image->fade_out(fadetime); +} + + }