void CartPusher::_reachedPathway() { Walker::_reachedPathway(); _d->anim = CartAnimation(); if( _d->consumerBuilding != NULL ) { GranaryPtr granary = ptr_cast<Granary>(_d->consumerBuilding); WarehousePtr warehouse = ptr_cast<Warehouse>(_d->consumerBuilding); FactoryPtr factory = ptr_cast<Factory>(_d->consumerBuilding); good::Store* goodStore = 0; if( granary.isValid() ) { goodStore = &granary->store(); } else if( warehouse.isValid() ) { goodStore = &warehouse->store(); } else if( factory.isValid() ) { goodStore = &factory->store(); } if( goodStore ) { int saveQty = _d->stock.qty(); wait( _d->stock.qty() ); goodStore->applyStorageReservation(_d->stock, _d->reservationID); _d->reservationID = 0; _d->cantUnloadGoods = (saveQty == _d->stock.qty()); } } // if( !_pathway().isReverse() ) { _pathway().toggleDirection(); _centerTile(); go(); _d->consumerBuilding = NULL; } else { deleteLater(); } }