Changeset - r10231:68df8fc5e3df
[Not reviewed]
master
0 1 0
frosch - 16 years ago 2008-10-12 10:22:13
frosch@openttd.org
(svn r14459) -Fix [FS#2343]: Update station-spread when building or removing oilrigs to make them consistent with station-spread-calculation on game-load and to make oilrig-stations behave like any other station type.
1 file changed with 5 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/station_cmd.cpp
Show inline comments
 
@@ -3034,47 +3034,52 @@ void BuildOilRig(TileIndex tile)
 
	st->truck_stops = NULL;
 
	st->airport_tile = tile;
 
	st->dock_tile = tile;
 
	st->train_tile = 0;
 
	st->had_vehicle_of_type = 0;
 
	st->time_since_load = 255;
 
	st->time_since_unload = 255;
 
	st->delete_ctr = 0;
 
	st->last_vehicle_type = VEH_INVALID;
 
	st->facilities = FACIL_AIRPORT | FACIL_DOCK;
 
	st->build_date = _date;
 

	
 
	st->rect.BeforeAddTile(tile, StationRect::ADD_FORCE);
 

	
 
	for (CargoID j = 0; j < NUM_CARGO; j++) {
 
		st->goods[j].acceptance_pickup = 0;
 
		st->goods[j].days_since_pickup = 255;
 
		st->goods[j].rating = INITIAL_STATION_RATING;
 
		st->goods[j].last_speed = 0;
 
		st->goods[j].last_age = 255;
 
	}
 

	
 
	UpdateStationVirtCoordDirty(st);
 
	UpdateStationAcceptance(st, false);
 
}
 

	
 
void DeleteOilRig(TileIndex tile)
 
{
 
	Station *st = GetStationByTile(tile);
 

	
 
	MakeWaterKeepingClass(tile, OWNER_NONE);
 
	MarkTileDirtyByTile(tile);
 

	
 
	st->dock_tile = 0;
 
	st->airport_tile = 0;
 
	st->facilities &= ~(FACIL_AIRPORT | FACIL_DOCK);
 
	st->airport_flags = 0;
 

	
 
	st->rect.AfterRemoveTile(st, tile);
 

	
 
	UpdateStationVirtCoordDirty(st);
 
	if (st->facilities == 0) delete st;
 
}
 

	
 
static void ChangeTileOwner_Station(TileIndex tile, Owner old_owner, Owner new_owner)
 
{
 
	if (!IsTileOwner(tile, old_owner)) return;
 

	
 
	if (new_owner != INVALID_OWNER) {
 
		Station *st = GetStationByTile(tile);
 

	
 
		SetTileOwner(tile, new_owner);
0 comments (0 inline, 0 general)