X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fscripting%2Ffloating_image.cpp;h=b45eb090656524379b1a88d62dfa966b747b6345;hb=c81b842f4880cd7b4958e03e983e50bff95d02ef;hp=c0b1201e506d2dc2eda2fca7d2a4d5ff7858479e;hpb=f27ec33980c31a595f497d85b8ddee17c451975f;p=supertux.git diff --git a/src/scripting/floating_image.cpp b/src/scripting/floating_image.cpp index c0b1201e5..b45eb0906 100644 --- a/src/scripting/floating_image.cpp +++ b/src/scripting/floating_image.cpp @@ -1,24 +1,46 @@ -#include +// 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 -#include -#include "floating_image.hpp" -#include "sector.hpp" #include "object/floating_image.hpp" +#include "scripting/floating_image.hpp" +#include "supertux/sector.hpp" +#include "worldmap/worldmap.hpp" -namespace Scripting -{ +namespace scripting { -FloatingImage::FloatingImage(const std::string& spritefile) +FloatingImage::FloatingImage(const std::string& spritefile) : + floating_image() { - assert(Sector::current() != NULL); - floating_image = new _FloatingImage(spritefile); - Sector::current()->add_object(floating_image); + using namespace worldmap; + + 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 +97,30 @@ 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); +} + +} + +/* EOF */