(svn r2031) -Fix: Station #256 now gets cargo delivered as well

pull/155/head
celestar 20 years ago
parent 239aa75504
commit 879513b1b2

@ -2671,7 +2671,7 @@ int32 CmdRenameStation(int x, int y, uint32 flags, uint32 p1, uint32 p2)
uint MoveGoodsToStation(uint tile, int w, int h, int type, uint amount) uint MoveGoodsToStation(uint tile, int w, int h, int type, uint amount)
{ {
Station *around_ptr[8]; Station *around_ptr[8];
byte around[8]; uint16 around[8];
uint16 st_index; uint16 st_index;
int i; int i;
Station *st; Station *st;
@ -2706,7 +2706,7 @@ uint MoveGoodsToStation(uint tile, int w, int h, int type, uint amount)
if (IsTileType(cur_tile, MP_STATION)) { if (IsTileType(cur_tile, MP_STATION)) {
st_index = _map2[cur_tile]; st_index = _map2[cur_tile];
for(i=0; i!=8; i++) { for(i=0; i!=8; i++) {
if (around[i] == 0xFF) { if (around[i] == INVALID_STATION) {
st = GetStation(st_index); st = GetStation(st_index);
if ((st->had_vehicle_of_type & HVOT_BUOY) == 0 && if ((st->had_vehicle_of_type & HVOT_BUOY) == 0 &&
( !st->town->exclusive_counter || (st->town->exclusivity == st->owner) ) && // check exclusive transport rights ( !st->town->exclusive_counter || (st->town->exclusivity == st->owner) ) && // check exclusive transport rights
@ -2753,10 +2753,10 @@ uint MoveGoodsToStation(uint tile, int w, int h, int type, uint amount)
END_TILE_LOOP(cur_tile, w, h, tile - TILE_XY(max_rad, max_rad)) END_TILE_LOOP(cur_tile, w, h, tile - TILE_XY(max_rad, max_rad))
/* no stations around at all? */ /* no stations around at all? */
if (around[0] == 0xFF) if (around[0] == INVALID_STATION)
return 0; return 0;
if (around[1] == 0xFF) { if (around[1] == INVALID_STATION) {
/* only one station around */ /* only one station around */
moved = (amount * around_ptr[0]->goods[type].rating >> 8) + 1; moved = (amount * around_ptr[0]->goods[type].rating >> 8) + 1;
UpdateStationWaiting(around_ptr[0], type, moved); UpdateStationWaiting(around_ptr[0], type, moved);
@ -2767,7 +2767,7 @@ uint MoveGoodsToStation(uint tile, int w, int h, int type, uint amount)
st2 = st1 = NULL; st2 = st1 = NULL;
best_rating = best_rating2 = 0; best_rating = best_rating2 = 0;
for( i = 0; i != 8 && around[i] != 0xFF; i++) { for( i = 0; i != 8 && around[i] != INVALID_STATION; i++) {
if (around_ptr[i]->goods[type].rating >= best_rating) { if (around_ptr[i]->goods[type].rating >= best_rating) {
best_rating2 = best_rating; best_rating2 = best_rating;
st2 = st1; st2 = st1;

Loading…
Cancel
Save