diff --git a/server/gameserver/explosion.cc b/server/gameserver/explosion.cc index 44dcebc..b3bcd52 100644 --- a/server/gameserver/explosion.cc +++ b/server/gameserver/explosion.cc @@ -10,6 +10,11 @@ enum ExplosionType_e kExplosionEnemyAndObstacle = 2 }; +Explosion::~Explosion() +{ + int i = 0; +} + void Explosion::IndifferenceAttack(Room* room, const a8::Vec2& center, float explosion_range, @@ -134,7 +139,8 @@ void Explosion::InternalAttack() if (explosion_damage_delay_ <= 0) { ProcDamage(); } else { - std::shared_ptr* self = new std::shared_ptr(this); + std::shared_ptr* self = new std::shared_ptr(); + *self = shared_from_this(); room_->xtimer.AddDeadLineTimerAndAttach (explosion_damage_delay_ / FRAME_RATE_MS, a8::XParams() diff --git a/server/gameserver/explosion.h b/server/gameserver/explosion.h index c808330..11d32b9 100644 --- a/server/gameserver/explosion.h +++ b/server/gameserver/explosion.h @@ -7,6 +7,7 @@ class EntityFactory; class Explosion : public std::enable_shared_from_this { public: + ~Explosion(); int exclude_uniid = 0; Room* GetRoom() { return room_; };