[Supertux-Commit] r5980 - in branches/supertux-milestone2-grumbel/src: badguy object sprite supertux trigger worldmap

grumbel at cummiskey.dreamhost.com grumbel at cummiskey.dreamhost.com
Sun Nov 15 13:17:15 PST 2009


Author: grumbel
Date: 2009-11-15 13:17:15 -0800 (Sun, 15 Nov 2009)
New Revision: 5980

Modified:
   branches/supertux-milestone2-grumbel/src/badguy/badguy.cpp
   branches/supertux-milestone2-grumbel/src/badguy/ghosttree.cpp
   branches/supertux-milestone2-grumbel/src/badguy/root.cpp
   branches/supertux-milestone2-grumbel/src/object/block.cpp
   branches/supertux-milestone2-grumbel/src/object/block.hpp
   branches/supertux-milestone2-grumbel/src/object/bullet.cpp
   branches/supertux-milestone2-grumbel/src/object/falling_coin.cpp
   branches/supertux-milestone2-grumbel/src/object/falling_coin.hpp
   branches/supertux-milestone2-grumbel/src/object/floating_image.cpp
   branches/supertux-milestone2-grumbel/src/object/flower.cpp
   branches/supertux-milestone2-grumbel/src/object/flower.hpp
   branches/supertux-milestone2-grumbel/src/object/gameobjs.cpp
   branches/supertux-milestone2-grumbel/src/object/gameobjs.hpp
   branches/supertux-milestone2-grumbel/src/object/infoblock.cpp
   branches/supertux-milestone2-grumbel/src/object/invisible_block.cpp
   branches/supertux-milestone2-grumbel/src/object/lantern.cpp
   branches/supertux-milestone2-grumbel/src/object/lantern.hpp
   branches/supertux-milestone2-grumbel/src/object/light.cpp
   branches/supertux-milestone2-grumbel/src/object/light.hpp
   branches/supertux-milestone2-grumbel/src/object/moving_sprite.cpp
   branches/supertux-milestone2-grumbel/src/object/moving_sprite.hpp
   branches/supertux-milestone2-grumbel/src/object/player.cpp
   branches/supertux-milestone2-grumbel/src/object/player.hpp
   branches/supertux-milestone2-grumbel/src/object/rainsplash.hpp
   branches/supertux-milestone2-grumbel/src/object/spotlight.cpp
   branches/supertux-milestone2-grumbel/src/object/spotlight.hpp
   branches/supertux-milestone2-grumbel/src/object/sprite_particle.cpp
   branches/supertux-milestone2-grumbel/src/object/sprite_particle.hpp
   branches/supertux-milestone2-grumbel/src/sprite/sprite_manager.cpp
   branches/supertux-milestone2-grumbel/src/sprite/sprite_manager.hpp
   branches/supertux-milestone2-grumbel/src/supertux/levelintro.cpp
   branches/supertux-milestone2-grumbel/src/trigger/door.cpp
   branches/supertux-milestone2-grumbel/src/trigger/door.hpp
   branches/supertux-milestone2-grumbel/src/trigger/switch.cpp
   branches/supertux-milestone2-grumbel/src/trigger/switch.hpp
   branches/supertux-milestone2-grumbel/src/worldmap/level.cpp
   branches/supertux-milestone2-grumbel/src/worldmap/special_tile.cpp
   branches/supertux-milestone2-grumbel/src/worldmap/sprite_change.cpp
   branches/supertux-milestone2-grumbel/src/worldmap/teleporter.cpp
   branches/supertux-milestone2-grumbel/src/worldmap/tux.cpp
Log:
Use std::auto_ptr<Sprite> instead of Sprite*

Modified: branches/supertux-milestone2-grumbel/src/badguy/badguy.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/badguy/badguy.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/badguy/badguy.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -115,7 +115,7 @@
 void
 BadGuy::draw(DrawingContext& context)
 {
-  if(!sprite)
+  if(!sprite.get())
     return;
   if(state == STATE_INIT || state == STATE_INACTIVE)
     return;

Modified: branches/supertux-milestone2-grumbel/src/badguy/ghosttree.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/badguy/ghosttree.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/badguy/ghosttree.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -53,7 +53,7 @@
   suck_lantern(0),
   willowisps()
 {
-  glow_sprite.reset(sprite_manager->create("images/creatures/ghosttree/ghosttree-glow.sprite"));
+  glow_sprite = sprite_manager->create("images/creatures/ghosttree/ghosttree-glow.sprite");
   set_colgroup_active(COLGROUP_TOUCHABLE);
   sound_manager->preload("sounds/tree_howling.ogg");
   sound_manager->preload("sounds/tree_suck.ogg");

Modified: branches/supertux-milestone2-grumbel/src/badguy/root.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/badguy/root.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/badguy/root.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -29,7 +29,7 @@
   offset_y(0),
   hatch_timer()
 {
-  base_sprite.reset(sprite_manager->create("images/creatures/ghosttree/root-base.sprite"));
+  base_sprite = sprite_manager->create("images/creatures/ghosttree/root-base.sprite");
   base_sprite->set_action("appearing", 1);
   base_sprite->set_animation_loops(1); // TODO: necessary because set_action ignores loops for default action
   physic.enable_gravity(false);

Modified: branches/supertux-milestone2-grumbel/src/object/block.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/block.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/block.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -39,8 +39,13 @@
 static const float EPSILON = .0001f;
 static const float BUMP_ROTATION_ANGLE = 10;
 
-Block::Block(Sprite* newsprite)
-  : sprite(newsprite), bouncing(false), breaking(false), bounce_dir(0), bounce_offset(0), original_y(-1)
+Block::Block(std::auto_ptr<Sprite> newsprite) :
+  sprite(newsprite), 
+  bouncing(false), 
+  breaking(false), 
+  bounce_dir(0), 
+  bounce_offset(0), 
+  original_y(-1)
 {
   bbox.set_size(32, 32.1f);
   set_group(COLGROUP_STATIC);
@@ -50,7 +55,6 @@
 
 Block::~Block()
 {
-  delete sprite;
 }
 
 HitResponse
@@ -152,8 +156,9 @@
 
 //---------------------------------------------------------------------------
 
-BonusBlock::BonusBlock(const Vector& pos, int data)
-  : Block(sprite_manager->create("images/objects/bonus_block/bonusblock.sprite")), object(0)
+BonusBlock::BonusBlock(const Vector& pos, int data) :
+  Block(sprite_manager->create("images/objects/bonus_block/bonusblock.sprite")), 
+  object(0)
 {
   bbox.set_pos(pos);
   sprite->set_action("normal");

Modified: branches/supertux-milestone2-grumbel/src/object/block.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/block.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/block.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -17,6 +17,8 @@
 #ifndef HEADER_SUPERTUX_OBJECT_BLOCK_HPP
 #define HEADER_SUPERTUX_OBJECT_BLOCK_HPP
 
+#include <memory>
+
 #include "lisp/lisp.hpp"
 #include "supertux/moving_object.hpp"
 
@@ -26,7 +28,7 @@
 class Block : public MovingObject
 {
 public:
-  Block(Sprite* sprite = 0);
+  Block(std::auto_ptr<Sprite> sprite);
   ~Block();
 
   virtual HitResponse collision(GameObject& other, const CollisionHit& hit);
@@ -41,7 +43,7 @@
   void start_break(GameObject* hitter);
   void break_me();
 
-  Sprite* sprite;
+  std::auto_ptr<Sprite> sprite;
   bool bouncing;
   bool breaking;
   float bounce_dir;

Modified: branches/supertux-milestone2-grumbel/src/object/bullet.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/bullet.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/bullet.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -32,14 +32,14 @@
   physic.set_velocity_x(speed + xm);
 
   if(type == FIRE_BONUS) {
-    sprite.reset(sprite_manager->create("images/objects/bullets/firebullet.sprite"));
+    sprite = sprite_manager->create("images/objects/bullets/firebullet.sprite");
   } else if(type == ICE_BONUS) {
     life_count = 10;
-    sprite.reset(sprite_manager->create("images/objects/bullets/icebullet.sprite"));
+    sprite = sprite_manager->create("images/objects/bullets/icebullet.sprite");
   } else {
     log_warning << "Bullet::Bullet called with unknown BonusType" << std::endl;
     life_count = 10;
-    sprite.reset(sprite_manager->create("images/objects/bullets/firebullet.sprite"));
+    sprite = sprite_manager->create("images/objects/bullets/firebullet.sprite");
   }
 
   bbox.set_pos(pos);

Modified: branches/supertux-milestone2-grumbel/src/object/falling_coin.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/falling_coin.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/falling_coin.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -15,6 +15,7 @@
 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #include "object/falling_coin.hpp"
+
 #include "sprite/sprite_manager.hpp"
 #include "supertux/main.hpp"
 
@@ -28,7 +29,6 @@
 
 FallingCoin::~FallingCoin()
 {
-  delete sprite;
 }
 
 void

Modified: branches/supertux-milestone2-grumbel/src/object/falling_coin.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/falling_coin.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/falling_coin.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -29,9 +29,10 @@
 
   void draw(DrawingContext& context);
   void update(float elapsed_time);
+
 private:
   Vector  pos;
-  Sprite* sprite;
+  std::auto_ptr<Sprite> sprite;
 };
 
 #endif

Modified: branches/supertux-milestone2-grumbel/src/object/floating_image.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/floating_image.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/floating_image.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -22,7 +22,7 @@
 FloatingImage::FloatingImage(const std::string& spritefile)
   : layer(LAYER_FOREGROUND1 + 1), visible(false), anchor(ANCHOR_MIDDLE), fading(0), fadetime(0)
 {
-  sprite.reset(sprite_manager->create(spritefile));
+  sprite = sprite_manager->create(spritefile);
 }
 
 FloatingImage::~FloatingImage()

Modified: branches/supertux-milestone2-grumbel/src/object/flower.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/flower.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/flower.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -19,8 +19,8 @@
 #include "object/player.hpp"
 #include "sprite/sprite_manager.hpp"
 
-Flower::Flower(BonusType _type)
-  : type(_type)
+Flower::Flower(BonusType _type) :
+  type(_type)
 {
   bbox.set_size(32, 32);
 
@@ -40,7 +40,6 @@
 
 Flower::~Flower()
 {
-  delete sprite;
 }
 
 void

Modified: branches/supertux-milestone2-grumbel/src/object/flower.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/flower.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/flower.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -33,7 +33,7 @@
 
 private:
   BonusType type;
-  Sprite* sprite;
+  std::auto_ptr<Sprite> sprite;
 
 private:
   Flower(const Flower&);

Modified: branches/supertux-milestone2-grumbel/src/object/gameobjs.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/gameobjs.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/gameobjs.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -42,7 +42,6 @@
 
 BouncyCoin::~BouncyCoin()
 {
-  delete sprite;
 }
 
 void
@@ -173,7 +172,6 @@
 
 SmokeCloud::~SmokeCloud()
 {
-  delete sprite;
 }
 
 void

Modified: branches/supertux-milestone2-grumbel/src/object/gameobjs.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/gameobjs.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/gameobjs.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -17,6 +17,8 @@
 #ifndef HEADER_SUPERTUX_OBJECT_GAMEOBJS_HPP
 #define HEADER_SUPERTUX_OBJECT_GAMEOBJS_HPP
 
+#include <memory>
+
 #include "math/vector.hpp"
 #include "supertux/game_object.hpp"
 #include "supertux/timer.hpp"
@@ -37,7 +39,7 @@
   virtual void draw(DrawingContext& context);
 
 private:
-  Sprite* sprite;
+  std::auto_ptr<Sprite> sprite;
   Vector position;
   Timer timer;
   float emerge_distance;
@@ -93,7 +95,7 @@
   virtual void draw(DrawingContext& context);
 
 private:
-  Sprite* sprite;
+  std::auto_ptr<Sprite> sprite;
   Timer timer;
   Vector position;
 

Modified: branches/supertux-milestone2-grumbel/src/object/infoblock.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/infoblock.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/infoblock.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -29,8 +29,10 @@
 const float HEIGHT = 200;
 }
 
-InfoBlock::InfoBlock(const lisp::Lisp& lisp)
-  : Block(sprite_manager->create("images/objects/bonus_block/infoblock.sprite")), shown_pct(0), dest_pct(0)
+InfoBlock::InfoBlock(const lisp::Lisp& lisp) :
+  Block(sprite_manager->create("images/objects/bonus_block/infoblock.sprite")), 
+  shown_pct(0), 
+  dest_pct(0)
 {
   Vector pos;
   lisp.get("x", pos.x);

Modified: branches/supertux-milestone2-grumbel/src/object/invisible_block.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/invisible_block.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/invisible_block.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -21,8 +21,9 @@
 #include "sprite/sprite_manager.hpp"
 #include "supertux/constants.hpp"
 
-InvisibleBlock::InvisibleBlock(const Vector& pos)
-  : Block(sprite_manager->create("images/objects/bonus_block/invisibleblock.sprite")), visible(false)
+InvisibleBlock::InvisibleBlock(const Vector& pos) :
+   Block(sprite_manager->create("images/objects/bonus_block/invisibleblock.sprite")), 
+   visible(false)
 {
   bbox.set_pos(pos);
   sound_manager->preload("sounds/brick.wav");

Modified: branches/supertux-milestone2-grumbel/src/object/lantern.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/lantern.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/lantern.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -49,7 +49,6 @@
 
 Lantern::~Lantern()
 {
-  delete lightsprite;
 }
 
 void

Modified: branches/supertux-milestone2-grumbel/src/object/lantern.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/lantern.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/lantern.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -49,7 +49,7 @@
 
 private:
   Color lightcolor;
-  Sprite* lightsprite;
+  std::auto_ptr<Sprite> lightsprite;
   void updateColor();
 
 private:

Modified: branches/supertux-milestone2-grumbel/src/object/light.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/light.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/light.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -25,7 +25,6 @@
 
 Light::~Light()
 {
-  delete sprite;
 }
 
 void

Modified: branches/supertux-milestone2-grumbel/src/object/light.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/light.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/light.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -17,6 +17,8 @@
 #ifndef HEADER_SUPERTUX_OBJECT_LIGHT_HPP
 #define HEADER_SUPERTUX_OBJECT_LIGHT_HPP
 
+#include <memory>
+
 #include "math/vector.hpp"
 #include "supertux/game_object.hpp"
 #include "video/color.hpp"
@@ -35,7 +37,7 @@
 protected:
   Vector position;
   Color color;
-  Sprite* sprite;
+  std::auto_ptr<Sprite> sprite;
 };
 
 #endif

Modified: branches/supertux-milestone2-grumbel/src/object/moving_sprite.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/moving_sprite.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/moving_sprite.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -68,7 +68,7 @@
   MovingObject(other), 
   layer(other.layer)
 {
-  sprite = new Sprite(*other.sprite);
+  sprite.reset(new Sprite(*other.sprite));
 }
 /*
   MovingSprite&
@@ -87,7 +87,6 @@
 */
 MovingSprite::~MovingSprite()
 {
-  delete sprite;
 }
 
 void

Modified: branches/supertux-milestone2-grumbel/src/object/moving_sprite.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/moving_sprite.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/moving_sprite.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -45,7 +45,7 @@
 
 protected:
   std::string sprite_name;
-  Sprite* sprite;
+  std::auto_ptr<Sprite> sprite;
   int layer; /**< Sprite's z-position. Refer to video/drawing_context.hpp for sensible values. */
 
   /**

Modified: branches/supertux-milestone2-grumbel/src/object/player.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/player.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/player.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -114,7 +114,7 @@
 {
   this->name = name;
   controller = main_controller;
-  scripting_controller = new CodeController();
+  scripting_controller.reset(new CodeController());
   sprite = sprite_manager->create("images/creatures/tux/tux.sprite");
   airarrow.reset(new Surface("images/engine/hud/airarrow.png"));
   idle_timer.start(IDLE_TIME[0]/1000.0f);
@@ -133,8 +133,6 @@
 Player::~Player()
 {
   if (climbing) stop_climbing(*climbing);
-  delete sprite;
-  delete scripting_controller;
 }
 
 void
@@ -217,11 +215,11 @@
 void 
 Player::use_scripting_controller(bool use_or_release)
 {
-  if ((use_or_release == true) && (controller != scripting_controller)) {
+  if ((use_or_release == true) && (controller != scripting_controller.get())) {
     scripting_controller_old = get_controller();
-    set_controller(scripting_controller);
+    set_controller(scripting_controller.get());
   }
-  if ((use_or_release == false) && (controller == scripting_controller)) {
+  if ((use_or_release == false) && (controller == scripting_controller.get())) {
     set_controller(scripting_controller_old);
     scripting_controller_old = 0;
   }

Modified: branches/supertux-milestone2-grumbel/src/object/player.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/player.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/player.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -53,7 +53,7 @@
   enum FallMode { ON_GROUND, JUMPING, TRAMPOLINE_JUMP, FALLING };
 
   Controller* controller;
-  CodeController* scripting_controller; /**< This controller is used when the Player is controlled via scripting */
+  std::auto_ptr<CodeController> scripting_controller; /**< This controller is used when the Player is controlled via scripting */
   PlayerStatus* player_status;
   bool duck;
   bool dead;
@@ -292,10 +292,7 @@
 
   Portable* grabbed_object;
 
-  Sprite* sprite; /**< The main sprite representing Tux */
-  Sprite* smalltux_gameover;
-  Sprite* smalltux_star;
-  Sprite* bigtux_star;
+  std::auto_ptr<Sprite> sprite; /**< The main sprite representing Tux */
 
   std::auto_ptr<Surface> airarrow; /**< arrow indicating Tux' position when he's above the camera */
 

Modified: branches/supertux-milestone2-grumbel/src/object/rainsplash.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/rainsplash.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/rainsplash.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -33,7 +33,7 @@
   virtual void update(float time);
   virtual void draw(DrawingContext& context);
 private:
-  Sprite* sprite;
+  std::auto_ptr<Sprite> sprite;
   Vector position;
   int frame;
 };

Modified: branches/supertux-milestone2-grumbel/src/object/spotlight.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/spotlight.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/spotlight.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -49,11 +49,6 @@
 
 Spotlight::~Spotlight()
 {
-  delete center;
-  delete base;
-  delete lights;
-  delete lightcone;
-  delete light;
 }
 
 void

Modified: branches/supertux-milestone2-grumbel/src/object/spotlight.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/spotlight.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/spotlight.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -17,6 +17,8 @@
 #ifndef HEADER_SUPERTUX_OBJECT_SPOTLIGHT_HPP
 #define HEADER_SUPERTUX_OBJECT_SPOTLIGHT_HPP
 
+#include <memory>
+
 #include "lisp/lisp.hpp"
 #include "math/vector.hpp"
 #include "supertux/game_object.hpp"
@@ -36,11 +38,11 @@
 private:
   Vector  position;
   float   angle;
-  Sprite* center;
-  Sprite* base;
-  Sprite* lights;
-  Sprite* light;
-  Sprite* lightcone;
+  std::auto_ptr<Sprite> center;
+  std::auto_ptr<Sprite> base;
+  std::auto_ptr<Sprite> lights;
+  std::auto_ptr<Sprite> light;
+  std::auto_ptr<Sprite> lightcone;
 
   Color   color;
 };

Modified: branches/supertux-milestone2-grumbel/src/object/sprite_particle.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/sprite_particle.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/sprite_particle.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -24,7 +24,7 @@
   : position(position), velocity(velocity), acceleration(acceleration), drawing_layer(drawing_layer)
 {
   sprite = sprite_manager->create(sprite_name);
-  if (!sprite) throw std::runtime_error("Could not load sprite "+sprite_name);
+  if (!sprite.get()) throw std::runtime_error("Could not load sprite "+sprite_name);
   sprite->set_action(action, 1);
   sprite->set_animation_loops(1); //TODO: this is necessary because set_action will not set "loops" when "action" is the default action
 

Modified: branches/supertux-milestone2-grumbel/src/object/sprite_particle.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/object/sprite_particle.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/object/sprite_particle.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -33,8 +33,9 @@
   virtual void hit(Player& player);
   virtual void update(float elapsed_time);
   virtual void draw(DrawingContext& context);
+
 private:
-  Sprite* sprite;
+  std::auto_ptr<Sprite> sprite;
   Vector position;
   Vector velocity;
   Vector acceleration;

Modified: branches/supertux-milestone2-grumbel/src/sprite/sprite_manager.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/sprite/sprite_manager.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/sprite/sprite_manager.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -33,7 +33,7 @@
   }
 }
 
-Sprite*
+std::auto_ptr<Sprite>
 SpriteManager::create(const std::string& name)
 {
   Sprites::iterator i = sprites.find(name);
@@ -50,7 +50,7 @@
     data = i->second;
   }
 
-  return new Sprite(*data);
+  return std::auto_ptr<Sprite>(new Sprite(*data));
 }
 
 SpriteData*

Modified: branches/supertux-milestone2-grumbel/src/sprite/sprite_manager.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/sprite/sprite_manager.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/sprite/sprite_manager.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -18,6 +18,7 @@
 #define HEADER_SUPERTUX_SPRITE_SPRITE_MANAGER_HPP
 
 #include <map>
+#include <memory>
 #include <string>
 
 class SpriteData;
@@ -34,7 +35,7 @@
   ~SpriteManager();
 
   /** loads a sprite. */
-  Sprite* create(const std::string& filename);
+  std::auto_ptr<Sprite> create(const std::string& filename);
 
 private:
   SpriteData* load(const std::string& filename);

Modified: branches/supertux-milestone2-grumbel/src/supertux/levelintro.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/supertux/levelintro.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/supertux/levelintro.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -28,7 +28,7 @@
 LevelIntro::LevelIntro(const Level* level, const Statistics* best_level_statistics)
   : level(level), best_level_statistics(best_level_statistics), player_sprite_py(0), player_sprite_vy(0)
 {
-  player_sprite.reset(sprite_manager->create("images/creatures/tux/tux.sprite"));
+  player_sprite = sprite_manager->create("images/creatures/tux/tux.sprite");
   player_sprite->set_action("small-walk-right");
   player_sprite_jump_timer.start(systemRandom.randf(5,10));
 }

Modified: branches/supertux-milestone2-grumbel/src/trigger/door.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/trigger/door.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/trigger/door.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -22,8 +22,8 @@
 #include "supertux/object_factory.hpp"
 #include "trigger/door.hpp"
 
-Door::Door(const lisp::Lisp& reader)
-  : state(CLOSED)
+Door::Door(const lisp::Lisp& reader) :
+  state(CLOSED)
 {
   reader.get("x", bbox.p1.x);
   reader.get("y", bbox.p1.y);
@@ -37,8 +37,8 @@
   sound_manager->preload("sounds/door.wav");
 }
 
-Door::Door(int x, int y, std::string sector, std::string spawnpoint)
-  : state(CLOSED)
+Door::Door(int x, int y, std::string sector, std::string spawnpoint) :
+  state(CLOSED)
 {
   bbox.set_pos(Vector(x, y));
   target_sector = sector;
@@ -53,7 +53,6 @@
 
 Door::~Door()
 {
-  delete sprite;
 }
 
 void

Modified: branches/supertux-milestone2-grumbel/src/trigger/door.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/trigger/door.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/trigger/door.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -45,10 +45,11 @@
     CLOSING
   };
 
+private:
   DoorState state; /**< current state of the door */
   std::string target_sector; /**< target sector to teleport to */
   std::string target_spawnpoint; /**< target spawnpoint to teleport to */
-  Sprite* sprite; /**< "door" sprite to render */
+  std::auto_ptr<Sprite> sprite; /**< "door" sprite to render */
   Timer stay_open_timer; /**< time until door will close again */
 };
 

Modified: branches/supertux-milestone2-grumbel/src/trigger/switch.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/trigger/switch.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/trigger/switch.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -28,8 +28,8 @@
 const std::string SWITCH_SOUND = "sounds/switch.ogg";
 }
 
-Switch::Switch(const lisp::Lisp& reader)
-  : state(OFF)
+Switch::Switch(const lisp::Lisp& reader) :
+  state(OFF)
 {
   if (!reader.get("x", bbox.p1.x)) throw std::runtime_error("no x position set");
   if (!reader.get("y", bbox.p1.y)) throw std::runtime_error("no y position set");
@@ -43,7 +43,6 @@
 
 Switch::~Switch()
 {
-  delete sprite;
 }
 
 void

Modified: branches/supertux-milestone2-grumbel/src/trigger/switch.hpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/trigger/switch.hpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/trigger/switch.hpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -48,7 +48,7 @@
   };
 
   std::string sprite_name;
-  Sprite* sprite;
+  std::auto_ptr<Sprite> sprite;
   std::string script;
 
   SwitchState state;

Modified: branches/supertux-milestone2-grumbel/src/worldmap/level.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/worldmap/level.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/worldmap/level.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -39,7 +39,7 @@
 
   std::string spritefile = "images/worldmap/common/leveldot.sprite";
   lisp->get("sprite", spritefile);
-  sprite.reset(sprite_manager->create(spritefile));
+  sprite = sprite_manager->create(spritefile);
 
   lisp->get("extro-script", extro_script);
 

Modified: branches/supertux-milestone2-grumbel/src/worldmap/special_tile.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/worldmap/special_tile.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/worldmap/special_tile.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -35,7 +35,7 @@
   if(!invisible) {
     std::string spritefile = "";
     lisp->get("sprite", spritefile);
-    sprite.reset(sprite_manager->create(spritefile));
+    sprite = sprite_manager->create(spritefile);
   }
 
   lisp->get("map-message", map_message);

Modified: branches/supertux-milestone2-grumbel/src/worldmap/sprite_change.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/worldmap/sprite_change.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/worldmap/sprite_change.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -31,7 +31,7 @@
 
   std::string spritefile = "";
   lisp->get("sprite", spritefile);
-  sprite.reset(sprite_manager->create(spritefile));
+  sprite = sprite_manager->create(spritefile);
 
   lisp->get("stay-action", stay_action);
   lisp->get("initial-stay-action", in_stay_action);

Modified: branches/supertux-milestone2-grumbel/src/worldmap/teleporter.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/worldmap/teleporter.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/worldmap/teleporter.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -30,7 +30,7 @@
 
   std::string spritefile = "";
   if (lisp->get("sprite", spritefile)) {
-    sprite.reset(sprite_manager->create(spritefile));
+    sprite = sprite_manager->create(spritefile);
   }
 
   lisp->get("worldmap", worldmap);

Modified: branches/supertux-milestone2-grumbel/src/worldmap/tux.cpp
===================================================================
--- branches/supertux-milestone2-grumbel/src/worldmap/tux.cpp	2009-11-15 20:59:17 UTC (rev 5979)
+++ branches/supertux-milestone2-grumbel/src/worldmap/tux.cpp	2009-11-15 21:17:15 UTC (rev 5980)
@@ -42,7 +42,7 @@
   moving(),
   ghost_mode()
 {
-  sprite.reset(sprite_manager->create("images/worldmap/common/tux.sprite"));
+  sprite = sprite_manager->create("images/worldmap/common/tux.sprite");
 
   offset = 0;
   moving = false;



More information about the Supertux-Commit mailing list