MerchantCamel::MerchantCamel(PlayerCityPtr city, MerchantPtr merchant, int delay) : Human( city, walker::merchantCamel ), _d( new Impl ) { _d->headId = 0; _d->inCaravan = false; _d->headLocation = TilePos::invalid(); if( merchant.isValid() ) { _d->headId = merchant->uniqueId(); setPos( merchant->pos() ); setPathway( merchant->pathway() ); go(); wait( delay ); } }
void load( const VariantMap& stream ) { if( !route ) { Logger::warning( "WARNING !!!: Merchants::load() route is null" ); return; } foreach( it, stream ) { good::Storage sell, buy; MerchantPtr m = route->addMerchant( route->beginCity()->name(), sell, buy ); if( m.isValid() ) { m->load( it->second.toMap() ); } else { Logger::warning( "WARNING !!!: Merchants::load() cant load merchant index %d for route %s", std::distance( stream.begin(), it ), route->name().c_str() ); } }