X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fscripting%2Ffloating_image.cpp;h=1647685cdc929a5221403856d949899fe4972841;hb=d963f8dc3d2c4e432d3eeecd15351169e10243da;hp=db8292e9b8ae67c3bbd9af4a7b84c89e89d16d2b;hpb=07ddaed2a657e4d2a3d038fed223fc5827159caf;p=supertux.git diff --git a/src/scripting/floating_image.cpp b/src/scripting/floating_image.cpp index db8292e9b..1647685cd 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,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(); +} + }