(svn r22552) -Fix: Clear airport persistent storage on construction/removal of airports.

This commit is contained in:
frosch 2011-06-11 20:47:31 +00:00
parent b2275b4093
commit d5e7537e14
2 changed files with 8 additions and 0 deletions

View File

@ -62,6 +62,12 @@ struct PersistentStorageArray : BaseStorageArray {
free(this->prev_storage);
}
/** Resets all values to zero. */
void ResetToZero()
{
memset(this->storage, 0, sizeof(this->storage));
}
/**
* Stores some value at a given position.
* If there is no backup of the data that backup is made and then

View File

@ -2191,6 +2191,7 @@ CommandCost CmdBuildAirport(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
st->airport.layout = layout;
st->airport.flags = 0;
st->airport.rotation = rotation;
st->airport.psa.ResetToZero();
st->rect.BeforeAddRect(tile, w, h, StationRect::ADD_TRY);
@ -2287,6 +2288,7 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags)
st->airport.Clear();
st->facilities &= ~FACIL_AIRPORT;
st->airport.psa.ResetToZero();
SetWindowWidgetDirty(WC_STATION_VIEW, st->index, SVW_PLANES);