X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fscripting%2Ffloating_image.cpp;h=1cb0c02be3901e2f79aa5de1d02ce47b8cd80076;hb=7a0031e8f250c852743709ab06ecafe1896eefbe;hp=db8292e9b8ae67c3bbd9af4a7b84c89e89d16d2b;hpb=07ddaed2a657e4d2a3d038fed223fc5827159caf;p=supertux.git diff --git a/src/scripting/floating_image.cpp b/src/scripting/floating_image.cpp index db8292e9b..1cb0c02be 100644 --- a/src/scripting/floating_image.cpp +++ b/src/scripting/floating_image.cpp @@ -16,28 +16,35 @@ // 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 @@ -94,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); +} + + }