diff -r c5c9dc32c052 -r 6bdf79ffb022 src/water_cmd.cpp --- a/src/water_cmd.cpp Mon May 26 11:36:42 2008 +0000 +++ b/src/water_cmd.cpp Mon May 26 13:52:59 2008 +0000 @@ -738,7 +738,7 @@ default: assert(0); break; } - td->owner = GetTileOwner(tile); + td->owner[0] = GetTileOwner(tile); } static void AnimateTile_Water(TileIndex tile) @@ -771,7 +771,7 @@ } /* if non-uniform stations are disabled, flood some train in this train station (if there is any) */ - if (!_patches.nonuniform_stations && IsTileType(tile, MP_STATION) && GetStationType(tile) == STATION_RAIL) { + if (!_settings.station.nonuniform_stations && IsTileType(tile, MP_STATION) && GetStationType(tile) == STATION_RAIL) { const Station *st = GetStationByTile(tile); BEGIN_TILE_LOOP(t, st->trainst_w, st->trainst_h, st->train_tile) @@ -819,19 +819,15 @@ if (v->z_pos != airport->delta_z + 1) return; } - Vehicle *u; if (v->type != VEH_AIRCRAFT) v = v->First(); - u = v; /* crash all wagons, and count passengers */ - BEGIN_ENUM_WAGONS(v) - if (IsCargoInClass(v->cargo_type, CC_PASSENGERS)) pass += v->cargo.Count(); - v->vehstatus |= VS_CRASHED; - MarkSingleVehicleDirty(v); - END_ENUM_WAGONS(v) - - v = u; + for (Vehicle *u = v; u != NULL; u = u->Next()) { + if (IsCargoInClass(u->cargo_type, CC_PASSENGERS)) pass += u->cargo.Count(); + u->vehstatus |= VS_CRASHED; + MarkSingleVehicleDirty(u); + } switch (v->type) { default: NOT_REACHED();