Changeset - r23814:5c16b925b190
[Not reviewed]
master
0 1 0
JMcKiern - 5 years ago 2019-09-04 20:47:21
jmckiern@tcd.ie
Fix #7692: Added industry tile to GetOrderCmdFromTile() (#7709)

Sending order command to an industry tile now checks if a neutral_station is available and sends the order to that station
1 file changed with 12 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/order_gui.cpp
Show inline comments
 
@@ -24,6 +24,7 @@
 
#include "tilehighlight_func.h"
 
#include "network/network.h"
 
#include "station_base.h"
 
#include "industry.h"
 
#include "waypoint_base.h"
 
#include "core/geometry_func.hpp"
 
#include "hotkeys.h"
 
@@ -389,11 +390,17 @@ static Order GetOrderCmdFromTile(const V
 
		return order;
 
	}
 

	
 
	if (IsTileType(tile, MP_STATION)) {
 
		StationID st_index = GetStationIndex(tile);
 
		const Station *st = Station::Get(st_index);
 
	/* check for station or industry with neutral station */
 
	if (IsTileType(tile, MP_STATION) || IsTileType(tile, MP_INDUSTRY)) {
 
		const Station *st = nullptr;
 

	
 
		if (st->owner == _local_company || st->owner == OWNER_NONE) {
 
		if (IsTileType(tile, MP_STATION)) {
 
			st = Station::GetByTile(tile);
 
		} else {
 
			const Industry *in = Industry::GetByTile(tile);
 
			st = in->neutral_station;
 
		}
 
		if (st != nullptr && (st->owner == _local_company || st->owner == OWNER_NONE)) {
 
			byte facil;
 
			switch (v->type) {
 
				case VEH_SHIP:     facil = FACIL_DOCK;    break;
 
@@ -403,6 +410,7 @@ static Order GetOrderCmdFromTile(const V
 
				default: NOT_REACHED();
 
			}
 
			if (st->facilities & facil) {
 
				StationID st_index = GetStationIndex(st->xy);
 
				order.MakeGoToStation(st_index);
 
				if (_ctrl_pressed) order.SetLoadType(OLF_FULL_LOAD_ANY);
 
				if (_settings_client.gui.new_nonstop && v->IsGroundVehicle()) order.SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
0 comments (0 inline, 0 general)