From edb6d6bb6406020d9e49a1898d23e2709c14196d Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Tue, 19 Oct 2010 00:23:50 +0000 Subject: corrects a bullet segfault when deleteing an EntityControlable --- src/core/entity.cc | 5 +++++ src/game/base/shipmodel.cc | 2 ++ 2 files changed, 7 insertions(+) (limited to 'src') diff --git a/src/core/entity.cc b/src/core/entity.cc index 1438466..2b37d95 100644 --- a/src/core/entity.cc +++ b/src/core/entity.cc @@ -748,6 +748,11 @@ EntityControlable::~EntityControlable() { if (entity_owner) entity_owner->remove_asset(this); + + if (entity_actioninterface) { + entity_zone->physics()->removeAction(entity_actioninterface); + delete entity_actioninterface; + } } void EntityControlable::set_owner(Player *owner) diff --git a/src/game/base/shipmodel.cc b/src/game/base/shipmodel.cc index 077fd3e..3630d11 100644 --- a/src/game/base/shipmodel.cc +++ b/src/game/base/shipmodel.cc @@ -242,6 +242,7 @@ void ShipModel::buy(core::EntityControlable *buyer, core::Entity *seller) ship->set_state(core::Entity::Docked); ship->get_axis().assign(seller->axis()); ship->get_axis().change_direction(180.0f); + ship->reset(); // transfer inventory for (core::Inventory::Items::iterator it = player->control()->inventory()->items().begin(); @@ -266,6 +267,7 @@ void ShipModel::buy(core::EntityControlable *buyer, core::Entity *seller) msgstr << "^BPurchased " << aux::article(name()) << " for " << price() << " credits"; player->send(msgstr.str()); player->sound("game/buy-ship"); + } } -- cgit v1.2.3