mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
(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:
parent
40a843e808
commit
d23e3a2fa2
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user