Esempio n. 1
0
bool CharacterObject::enterVehicle(VehicleObject* vehicle, size_t seat)
{
	if(vehicle) {
		// Check that the seat is free
		if(vehicle->getOccupant(seat)) {
			return false;
		}
		else {
			// Make sure we leave any vehicle we're inside
			enterVehicle(nullptr, 0);
			vehicle->setOccupant(seat, this);
			setCurrentVehicle(vehicle, seat);
			//enterAction(VehicleSit);
			return true;
		}
	}
	else {
		if(currentVehicle) {
			currentVehicle->setOccupant(seat, nullptr);
			// Disabled due to crashing.
			//setPosition(currentVehicle->getPosition()); 
			setCurrentVehicle(nullptr, 0);
			return true;
		}
	}
	return false;
}
Esempio n. 2
0
void Player::interact(sf::Vector2f vehicleLocation, DeliveryManager* deliveryManager)
{
	sf::Vector2u playerPoint(col, row);
	Delivery* delivery = deliveryManager->getDeliveryAt(playerPoint);
	if (delivery != NULL) {
		if (delivery->getPickupPoint() == playerPoint && !delivery->isPickedUp()) {
			deliveryManager->pickupDelivery(delivery);
		}
		else if (delivery->getDropoffPoint() == playerPoint && delivery->isPickedUp())
			deliveryManager->dropoffDelivery(delivery);
	}
	else if (abs(x - vehicleLocation.x) < 80 && abs(y - vehicleLocation.y) < 80)
		enterVehicle();
}