(svn r30) -Fix [1007272] Copy orders between bus/truck possible. You cannot share orders between busses/trucks. You can only copy orders if all the facilities in schedule allow both types to go there (Celestar)

-Fix Dutch in dropdown language box is not in BIGFONT
pull/155/head
darkvater 20 years ago
parent 52f8e963c1
commit 386c8ccfbf

@ -1,5 +1,5 @@
##name Dutch (not complete)
##ownname Nederlands (niet volledig)
##name Dutch (not complete)
##ownname Nederlands (niet volledig)
##id 0x0000
STR_NULL :

@ -217,6 +217,12 @@ int32 CmdCloneOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2)
// sanity checks
if (!(src->owner == _current_player && dst->type == src->type && dst != src))
return CMD_ERROR;
// let's see what happens with road vehicles
if (src->type == VEH_Road) {
if (src->cargo_type != dst->cargo_type && (src->cargo_type == CT_PASSENGERS || dst->cargo_type == CT_PASSENGERS))
return CMD_ERROR;
}
if (flags & DC_EXEC) {
DeleteVehicleSchedule(dst);
@ -237,6 +243,23 @@ int32 CmdCloneOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2)
// sanity checks
if (!(src->owner == _current_player && dst->type == src->type && dst != src))
return CMD_ERROR;
// let's see what happens with road vehicles
if (src->type == VEH_Road) {
uint16 ord;
int i;
Station *st;
TileIndex required_dst;
for (i=0; (ord = src->schedule_ptr[i]) != 0; i++) {
if ( ( ord & OT_MASK ) == OT_GOTO_STATION ) {
st = DEREF_STATION(ord >> 8);
required_dst = (dst->cargo_type == CT_PASSENGERS) ? st->bus_tile : st->lorry_tile;
if ( !required_dst )
return CMD_ERROR;
}
}
}
// make sure there's orders available
delta = IsScheduleShared(dst) ? src->num_orders + 1 : src->num_orders - dst->num_orders;

Loading…
Cancel
Save