X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fobject%2Fmoving_sprite.cpp;h=0a25d2f3ccd7cacf156f1810d1ef6e0c386e532a;hb=9af7ca781183b7d57410e5cd3b8bc7f8128ed1b0;hp=646addbd1882eb150c5d683c7feaa4fe6dc1a134;hpb=18c69f4aa24d496f84a088d60c18b180c293dace;p=supertux.git diff --git a/src/object/moving_sprite.cpp b/src/object/moving_sprite.cpp index 646addbd1..0a25d2f3c 100644 --- a/src/object/moving_sprite.cpp +++ b/src/object/moving_sprite.cpp @@ -19,68 +19,69 @@ #include "sprite/sprite_manager.hpp" #include "util/reader.hpp" -MovingSprite::MovingSprite(const Vector& pos, const std::string& sprite_name, - int layer, CollisionGroup collision_group) : - sprite_name(sprite_name), +#include + +MovingSprite::MovingSprite(const Vector& pos, const std::string& sprite_name_, + int layer_, CollisionGroup collision_group) : + sprite_name(sprite_name_), sprite(), - layer(layer) + layer(layer_) { bbox.set_pos(pos); - sprite = sprite_manager->create(sprite_name); + sprite = SpriteManager::current()->create(sprite_name); bbox.set_size(sprite->get_current_hitbox_width(), sprite->get_current_hitbox_height()); set_group(collision_group); } -MovingSprite::MovingSprite(const Reader& reader, const Vector& pos, int layer, CollisionGroup collision_group) : - sprite_name(sprite_name), +MovingSprite::MovingSprite(const Reader& reader, const Vector& pos, int layer_, CollisionGroup collision_group) : + sprite_name(), sprite(), - layer(layer) + layer(layer_) { bbox.set_pos(pos); if (!reader.get("sprite", sprite_name)) throw std::runtime_error("no sprite name set"); - sprite = sprite_manager->create(sprite_name); + sprite = SpriteManager::current()->create(sprite_name); bbox.set_size(sprite->get_current_hitbox_width(), sprite->get_current_hitbox_height()); set_group(collision_group); } -MovingSprite::MovingSprite(const Reader& reader, const std::string& sprite_name, int layer, CollisionGroup collision_group) : - sprite_name(sprite_name), +MovingSprite::MovingSprite(const Reader& reader, const std::string& sprite_name_, int layer_, CollisionGroup collision_group) : + sprite_name(sprite_name_), sprite(), - layer(layer) + layer(layer_) { reader.get("x", bbox.p1.x); reader.get("y", bbox.p1.y); reader.get("sprite", this->sprite_name); - sprite = sprite_manager->create(this->sprite_name); + sprite = SpriteManager::current()->create(this->sprite_name); bbox.set_size(sprite->get_current_hitbox_width(), sprite->get_current_hitbox_height()); set_group(collision_group); } -MovingSprite::MovingSprite(const Reader& reader, int layer, CollisionGroup collision_group) : +MovingSprite::MovingSprite(const Reader& reader, int layer_, CollisionGroup collision_group) : sprite_name(), sprite(), - layer(layer) + layer(layer_) { reader.get("x", bbox.p1.x); reader.get("y", bbox.p1.y); if (!reader.get("sprite", sprite_name)) throw std::runtime_error("no sprite name set"); - sprite = sprite_manager->create(sprite_name); + sprite = SpriteManager::current()->create(sprite_name); bbox.set_size(sprite->get_current_hitbox_width(), sprite->get_current_hitbox_height()); set_group(collision_group); } MovingSprite::MovingSprite(const MovingSprite& other) : - MovingObject(other), + MovingObject(other), sprite_name(), - sprite(), + sprite(other.sprite->clone()), layer(other.layer) { - sprite.reset(new Sprite(*other.sprite)); } /* MovingSprite& @@ -122,16 +123,16 @@ 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() - (bbox.get_size().as_vector() - old_size) / 2); } void MovingSprite::set_action(const std::string& action, int loops, AnchorPoint anchorPoint) { - Rect old_bbox = bbox; + Rectf old_bbox = bbox; sprite->set_action(action, loops); float w = sprite->get_current_hitbox_width(); float h = sprite->get_current_hitbox_height();