(svn r8231) -Fix (r8125): MP desync caused by calling Random() from station constructor. This was wrong because station constructor is called also when loading savegame and when player tries to build station when it is not sure that it will succeed (thanks Rubidium)

This commit is contained in:
KUDr
2007-01-18 09:34:44 +00:00
parent 653290c76a
commit 147ca22060
3 changed files with 19 additions and 21 deletions

View File

@@ -50,7 +50,7 @@ Station::Station(TileIndex tile)
last_vehicle_type = VEH_Invalid;
random_bits = Random();
random_bits = 0; // Random() must be called when station is really built (DC_EXEC)
waiting_triggers = 0;
}
@@ -105,6 +105,19 @@ void Station::operator delete(void *p, int st_idx)
{
}
/** Called when new facility is built on the station. If it is the first facility
* it initializes also 'xy' and 'random_bits' members */
void Station::AddFacility(byte new_facility_bit, TileIndex facil_xy)
{
if (facilities == 0) {
xy = facil_xy;
random_bits = Random();
}
facilities |= new_facility_bit;
owner = _current_player;
build_date = _date;
}
void Station::MarkDirty() const
{
if (sign.width_1 != 0) {