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;
|
StationClass *station_class;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
/* If the station has already been allocated, don't reallocate it. */
|
||||||
|
if (statspec->allocated) return;
|
||||||
|
|
||||||
assert(statspec->sclass < STAT_CLASS_MAX);
|
assert(statspec->sclass < STAT_CLASS_MAX);
|
||||||
station_class = &station_classes[statspec->sclass];
|
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 = realloc(station_class->spec, station_class->stations * sizeof(*station_class->spec));
|
||||||
|
|
||||||
station_class->spec[i] = statspec;
|
station_class->spec[i] = statspec;
|
||||||
|
statspec->allocated = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,6 +21,8 @@ typedef struct StationSpec {
|
|||||||
uint32 grfid; ///< ID of GRF file station belongs to.
|
uint32 grfid; ///< ID of GRF file station belongs to.
|
||||||
int localidx; ///< Index within GRF file of station.
|
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.
|
StationClassID sclass; ///< The class to which this spec belongs.
|
||||||
StringID name; ///< Name of this station.
|
StringID name; ///< Name of this station.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user