mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r1801) -Fix [Multistop] Fixed a crash that occured when copying orders due to not checking a pointer to be non-NULL
This commit is contained in:
parent
6932461e63
commit
0ec4ee5963
10
order_cmd.c
10
order_cmd.c
|
@ -485,14 +485,18 @@ int32 CmdCloneOrder(int x, int y, uint32 flags, uint32 veh1_veh2, uint32 mode)
|
||||||
/* Trucks can't copy all the orders from busses (and visa versa) */
|
/* Trucks can't copy all the orders from busses (and visa versa) */
|
||||||
if (src->type == VEH_Road) {
|
if (src->type == VEH_Road) {
|
||||||
const Order *order;
|
const Order *order;
|
||||||
TileIndex required_dst;
|
TileIndex required_dst = INVALID_TILE;
|
||||||
|
|
||||||
FOR_VEHICLE_ORDERS(src, order) {
|
FOR_VEHICLE_ORDERS(src, order) {
|
||||||
if (order->type == OT_GOTO_STATION) {
|
if (order->type == OT_GOTO_STATION) {
|
||||||
const Station *st = GetStation(order->station);
|
const Station *st = GetStation(order->station);
|
||||||
required_dst = (dst->cargo_type == CT_PASSENGERS) ? st->bus_stops->xy : st->truck_stops->xy;
|
if (dst->cargo_type == CT_PASSENGERS) {
|
||||||
|
if (st->bus_stops != NULL) required_dst = st->bus_stops->xy;
|
||||||
|
} else {
|
||||||
|
if (st->truck_stops != NULL) required_dst = st->truck_stops->xy;
|
||||||
|
}
|
||||||
/* This station has not the correct road-bay, so we can't copy! */
|
/* This station has not the correct road-bay, so we can't copy! */
|
||||||
if (!required_dst)
|
if (required_dst == INVALID_TILE)
|
||||||
return CMD_ERROR;
|
return CMD_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue