From bfa10f9990a8a045b03474d11af75984c12a856a Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Thu, 25 Dec 2008 12:13:56 +0000 Subject: Improved list_zone, list_ships Ship price and cargo size --- src/game/base/shipdealer.cc | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) (limited to 'src/game/base/shipdealer.cc') diff --git a/src/game/base/shipdealer.cc b/src/game/base/shipdealer.cc index fb6415c..c1d3b10 100644 --- a/src/game/base/shipdealer.cc +++ b/src/game/base/shipdealer.cc @@ -67,41 +67,33 @@ ShipModel *ShipDealer::find(ShipModel *shipmodel) const void ShipDealer::func_buy(core::Player *player, const std::string &args) { core::Entity *dock = player->view(); - ShipModel *shipmodel = 0; + ShipDealer *shipdealer = 0; // find the ship model - std::string shipname; - std::string helpstr; - std::istringstream is(args); - is >> shipname; - aux::to_label(shipname); - - if (shipname.size()) { - for (ShipModel::iterator smit = ShipModel::registry.begin(); smit != ShipModel::registry.end(); smit++) { - if (shipname == (*smit).first) { - shipmodel = (*smit).second; - break; - } - - if (helpstr.size()) - helpstr.append("^N|^B"); - helpstr.append((*smit).first); - } - } - + ShipModel *shipmodel = ShipModel::find(args); if (!shipmodel) { if (!Game::g_devel->value()) { player->send("Cheats disabled"); return; - } else { + shipmodel = ShipModel::search(args); + } + } + + if (!shipmodel) { + std::string helpstr; + for (ShipModel::iterator smit = ShipModel::registry.begin(); smit != ShipModel::registry.end(); smit++) { + if (helpstr.size()) + helpstr.append("^N|^B"); + helpstr.append((*smit).second->label()); + player->send("Usage: buy [^B" + helpstr + "^N]"); return; } } - /// find the ship dealer we're buying the ship from + // find the ship dealer we're buying the ship from if (player->view()) { if (player->view()->moduletype() == station_enttype) { shipdealer = static_cast(player->view())->shipdealer(); -- cgit v1.2.3