diff options
author | glx <glx@openttd.org> | 2006-10-31 17:13:12 +0000 |
---|---|---|
committer | glx <glx@openttd.org> | 2006-10-31 17:13:12 +0000 |
commit | b2c7a408edab0317d1d67c1d5d9ef8f0043f5291 (patch) | |
tree | 768530db6d2f593ca3f9ec46e8dbaacb046df9d1 | |
parent | c3ddd81dea3ca1bb07898f6a74bb8b42f392b6de (diff) | |
download | openttd-b2c7a408edab0317d1d67c1d5d9ef8f0043f5291.tar.xz |
(svn r7020) -Fix r6047: AI tries to delete stations that are 'in use' because FOR_ALL_STATIONS skips invalid stations
-rw-r--r-- | ai/default/default.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/ai/default/default.c b/ai/default/default.c index dc4cce2fa..b78abb5ac 100644 --- a/ai/default/default.c +++ b/ai/default/default.c @@ -3555,7 +3555,6 @@ static void AiStateRemoveStation(Player *p) { // Remove stations that aren't in use by any vehicle byte *in_use; - const byte *used; const Order *ord; const Station *st; TileIndex tile; @@ -3571,9 +3570,8 @@ static void AiStateRemoveStation(Player *p) } // Go through all stations and delete those that aren't in use - used = in_use; FOR_ALL_STATIONS(st) { - if (st->owner == _current_player && !*used && + if (st->owner == _current_player && !in_use[st->index] && ( (st->bus_stops != NULL && (tile = st->bus_stops->xy) != 0) || (st->truck_stops != NULL && (tile = st->truck_stops->xy)) != 0 || (tile = st->train_tile) != 0 || @@ -3581,7 +3579,6 @@ static void AiStateRemoveStation(Player *p) (tile = st->airport_tile) != 0)) { DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR); } - used++; } free(in_use); |