X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fscripting%2Ffloating_image.cpp;h=1647685cdc929a5221403856d949899fe4972841;hb=8e38c01a8c4f2937c3f53d46d3034b0f55ba4316;hp=113935835b56c5fa5f3ce96a79420ed911308676;hpb=acd1950b9b853d6b7c56a2cb43e77ec3147b2369;p=supertux.git diff --git a/src/scripting/floating_image.cpp b/src/scripting/floating_image.cpp index 113935835..1647685cd 100644 --- a/src/scripting/floating_image.cpp +++ b/src/scripting/floating_image.cpp @@ -1,23 +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 @@ -74,4 +101,16 @@ 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(); +} + }