mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r21949) -Change: randomize the vehicle a small UFO targets, do not use the one with lowest index
This commit is contained in:
parent
a4bf3be864
commit
f3e550e9bd
|
@ -307,17 +307,28 @@ static bool DisasterTick_Ufo(DisasterVehicle *v)
|
|||
}
|
||||
v->current_order.SetDestination(1);
|
||||
|
||||
uint n = 0; // Total number of targetable road vehicles.
|
||||
RoadVehicle *u;
|
||||
FOR_ALL_ROADVEHICLES(u) {
|
||||
if (u->IsFrontEngine()) {
|
||||
v->dest_tile = u->index;
|
||||
v->age = 0;
|
||||
return true;
|
||||
}
|
||||
if (u->IsFrontEngine()) n++;
|
||||
}
|
||||
|
||||
delete v;
|
||||
return false;
|
||||
if (n == 0) {
|
||||
/* If there are no targetable road vehicles, destroy the UFO. */
|
||||
delete v;
|
||||
return false;
|
||||
}
|
||||
|
||||
n = RandomRange(n); // Choose one of them.
|
||||
FOR_ALL_ROADVEHICLES(u) {
|
||||
/* Find (n+1)-th road vehicle. */
|
||||
if (u->IsFrontEngine() && (n-- == 0)) break;
|
||||
}
|
||||
|
||||
/* Target it. */
|
||||
v->dest_tile = u->index;
|
||||
v->age = 0;
|
||||
return true;
|
||||
} else {
|
||||
/* Target a vehicle */
|
||||
RoadVehicle *u = RoadVehicle::Get(v->dest_tile);
|
||||
|
|
Loading…
Reference in New Issue