(svn r4772) - Newstations: when allocating a custom station (via action 0x03) check if the station has already been allocated. (Fixes duplicate waypoints in newstatsw in non-temperate climate)

This commit is contained in:
peter1138 2006-05-07 12:58:45 +00:00
parent 40a843e808
commit d23e3a2fa2
2 changed files with 6 additions and 0 deletions

View File

@ -137,6 +137,9 @@ void SetCustomStationSpec(StationSpec *statspec)
StationClass *station_class;
int i;
/* If the station has already been allocated, don't reallocate it. */
if (statspec->allocated) return;
assert(statspec->sclass < STAT_CLASS_MAX);
station_class = &station_classes[statspec->sclass];
@ -144,6 +147,7 @@ void SetCustomStationSpec(StationSpec *statspec)
station_class->spec = realloc(station_class->spec, station_class->stations * sizeof(*station_class->spec));
station_class->spec[i] = statspec;
statspec->allocated = true;
}
/**

View File

@ -21,6 +21,8 @@ typedef struct StationSpec {
uint32 grfid; ///< ID of GRF file station belongs to.
int localidx; ///< Index within GRF file of station.
bool allocated; ///< Flag whether this station has been added to a station class list
StationClassID sclass; ///< The class to which this spec belongs.
StringID name; ///< Name of this station.