Fixed code that broke due to changes to Rectf and Sizef
[supertux.git] / src / object / moving_sprite.cpp
index 4f06e07..6f35489 100644 (file)
 #include "sprite/sprite_manager.hpp"
 #include "util/reader.hpp"
 
-MovingSprite::MovingSprite(const Vector& pos, const std::string& sprite_name, 
+#include <stdexcept>
+
+MovingSprite::MovingSprite(const Vector& pos, const std::string& sprite_name,
                            int layer, CollisionGroup collision_group) :
-  sprite_name(sprite_name), 
+  sprite_name(sprite_name),
   sprite(),
   layer(layer)
 {
@@ -32,7 +34,7 @@ MovingSprite::MovingSprite(const Vector& pos, const std::string& sprite_name,
 }
 
 MovingSprite::MovingSprite(const Reader& reader, const Vector& pos, int layer, CollisionGroup collision_group) :
-  sprite_name(), 
+  sprite_name(),
   sprite(),
   layer(layer)
 {
@@ -46,7 +48,7 @@ MovingSprite::MovingSprite(const Reader& reader, const Vector& pos, int layer, C
 }
 
 MovingSprite::MovingSprite(const Reader& reader, const std::string& sprite_name, int layer, CollisionGroup collision_group) :
-  sprite_name(sprite_name), 
+  sprite_name(sprite_name),
   sprite(),
   layer(layer)
 {
@@ -75,7 +77,7 @@ MovingSprite::MovingSprite(const Reader& reader, int layer, CollisionGroup colli
 }
 
 MovingSprite::MovingSprite(const MovingSprite& other) :
-  MovingObject(other), 
+  MovingObject(other),
   sprite_name(),
   sprite(),
   layer(other.layer)
@@ -122,10 +124,10 @@ MovingSprite::set_action(const std::string& action, int loops)
 void
 MovingSprite::set_action_centered(const std::string& action, int loops)
 {
-  Vector old_size = bbox.get_size();
+  Vector old_size = bbox.get_size().as_vector();
   sprite->set_action(action, loops);
   set_size(sprite->get_current_hitbox_width(), sprite->get_current_hitbox_height());
-  set_pos(get_pos() - (bbox.get_size() - old_size) / 2);
+  set_pos(get_pos() - (Vector(bbox.get_size().as_vector()) - old_size) / 2);
 }
 
 void