コード例 #1
0
ファイル: VendorManager.cpp プロジェクト: SWGChoice/Core3
void VendorManager::destroyVendor(SceneObject* vendor) {
	DataObjectComponentReference* data = vendor->getDataObjectComponent();
	if(data == NULL || data->get() == NULL || !data->get()->isVendorData()) {
		error("Vendor has no data component");
		return;
	}

	VendorDataComponent* vendorData = cast<VendorDataComponent*>(data->get());
	if(vendorData == NULL) {
		error("Vendor has wrong data component");
		return;
	}

	ManagedReference<AuctionManager*> auctionManager = server->getZoneServer()->getAuctionManager();
	if(auctionManager == NULL) {
		error("null auctionManager when deleting vendor");
		return;
	}
	ManagedReference<AuctionsMap*> auctionsMap = auctionManager->getAuctionMap();
	if(auctionsMap == NULL) {
		error("null auctionsMap");
		return;
	}

	if (vendorData->isRegistered() && vendor->getZone() != NULL) {
		vendor->getZone()->unregisterObjectWithPlanetaryMap(vendor);
	}

	vendor->destroyObjectFromWorld(true);
	vendor->destroyObjectFromDatabase(true);

	auctionsMap->deleteTerminalItems(vendor);
}