summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openttd.c2
-rw-r--r--vehicle.h3
-rw-r--r--vehicle_gui.c17
3 files changed, 9 insertions, 13 deletions
diff --git a/openttd.c b/openttd.c
index 368d8b003..b18850069 100644
--- a/openttd.c
+++ b/openttd.c
@@ -231,7 +231,6 @@ static void InitializeDynamicVariables(void)
{
/* Dynamic stuff needs to be initialized somewhere... */
_station_sort = NULL;
- _vehicle_sort = NULL;
_town_sort = NULL;
_industry_sort = NULL;
}
@@ -247,7 +246,6 @@ static void UnInitializeDynamicVariables(void)
CleanPool(&_order_pool);
free(_station_sort);
- free(_vehicle_sort);
free(_town_sort);
free(_industry_sort);
}
diff --git a/vehicle.h b/vehicle.h
index 1451e17f2..ea63de569 100644
--- a/vehicle.h
+++ b/vehicle.h
@@ -341,9 +341,6 @@ byte GetDirectionTowards(const Vehicle *v, int x, int y);
#define BEGIN_ENUM_WAGONS(v) do {
#define END_ENUM_WAGONS(v) } while ( (v=v->next) != NULL);
-/* vehicle.c */
-VARDEF SortStruct *_vehicle_sort;
-
extern MemoryPool _vehicle_pool;
/**
diff --git a/vehicle_gui.c b/vehicle_gui.c
index fdaa7fa4f..43fd33976 100644
--- a/vehicle_gui.c
+++ b/vehicle_gui.c
@@ -106,15 +106,15 @@ void ResortVehicleLists(void)
void BuildVehicleList(vehiclelist_d* vl, int type, PlayerID owner, StationID station)
{
+ SortStruct* sort_list;
uint subtype = (type != VEH_Aircraft) ? Train_Front : 2;
uint n = 0;
uint i;
if (!(vl->flags & VL_REBUILD)) return;
- /* Create array for sorting */
- _vehicle_sort = realloc(_vehicle_sort, GetVehiclePoolSize() * sizeof(_vehicle_sort[0]));
- if (_vehicle_sort == NULL)
+ sort_list = malloc(GetVehiclePoolSize() * sizeof(sort_list[0]));
+ if (sort_list == NULL)
error("Could not allocate memory for the vehicle-sorting-list");
DEBUG(misc, 1) ("Building vehicle list for player %d station %d...",
@@ -130,8 +130,8 @@ void BuildVehicleList(vehiclelist_d* vl, int type, PlayerID owner, StationID sta
FOR_VEHICLE_ORDERS(v, order) {
if (order->type == OT_GOTO_STATION && order->station == station) {
- _vehicle_sort[n].index = v->index;
- _vehicle_sort[n].owner = v->owner;
+ sort_list[n].index = v->index;
+ sort_list[n].owner = v->owner;
++n;
break;
}
@@ -144,8 +144,8 @@ void BuildVehicleList(vehiclelist_d* vl, int type, PlayerID owner, StationID sta
if (v->type == type && v->owner == owner && (
(type == VEH_Train && IsFrontEngine(v)) ||
(type != VEH_Train && v->subtype <= subtype))) {
- _vehicle_sort[n].index = v->index;
- _vehicle_sort[n].owner = v->owner;
+ sort_list[n].index = v->index;
+ sort_list[n].owner = v->owner;
++n;
}
}
@@ -157,7 +157,8 @@ void BuildVehicleList(vehiclelist_d* vl, int type, PlayerID owner, StationID sta
error("Could not allocate memory for the vehicle-sorting-list");
vl->list_length = n;
- for (i = 0; i < n; ++i) vl->sort_list[i] = _vehicle_sort[i];
+ for (i = 0; i < n; ++i) vl->sort_list[i] = sort_list[i];
+ free(sort_list);
vl->flags &= ~VL_REBUILD;
vl->flags |= VL_RESORT;