diff options
author | rubidium <rubidium@openttd.org> | 2007-08-03 20:17:26 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2007-08-03 20:17:26 +0000 |
commit | 9df2e25258122f76184b92648a4cc9717f68f9f5 (patch) | |
tree | 7067e69c760c84deb2c5ba156afacc8b1ac97873 /src | |
parent | bf8ec55db565af4ddefc2a42b7cd6ae44d9e69b7 (diff) | |
download | openttd-9df2e25258122f76184b92648a4cc9717f68f9f5.tar.xz |
(svn r10772) -Codechange: also make use of the generic clean and destroy pool callback functions for vehicle.
Diffstat (limited to 'src')
-rw-r--r-- | src/vehicle.cpp | 33 | ||||
-rw-r--r-- | src/vehicle.h | 4 |
2 files changed, 5 insertions, 32 deletions
diff --git a/src/vehicle.cpp b/src/vehicle.cpp index e4d6b09d4..c2fbe0548 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -78,27 +78,8 @@ const uint32 _send_to_depot_proc_table[] = { }; -enum { - BLOCKS_FOR_SPECIAL_VEHICLES = 2, ///< Blocks needed for special vehicles -}; - -/** - * Called if a new block is added to the vehicle-pool - */ -static void VehiclePoolNewBlock(uint start_item) -{ - Vehicle *v; - - /* We don't use FOR_ALL here, because FOR_ALL skips invalid items. - * TODO - This is just a temporary stage, this will be removed. */ - for (v = GetVehicle(start_item); v != NULL; v = (v->index + 1U < GetVehiclePoolSize()) ? GetVehicle(v->index + 1) : NULL) { - v->index = start_item++; - v = new (v) InvalidVehicle(); - } -} - /* Initialize the vehicle-pool */ -DEFINE_OLD_POOL(Vehicle, Vehicle, VehiclePoolNewBlock, NULL) +DEFINE_OLD_POOL_GENERIC(Vehicle, Vehicle) void VehicleServiceInDepot(Vehicle *v) { @@ -473,16 +454,8 @@ void ResetVehiclePosHash() void InitializeVehicles() { - uint i; - - /* Clean the vehicle pool, and reserve enough blocks - * for the special vehicles, plus one for all the other - * vehicles (which is increased on-the-fly) */ - CleanPool(&_Vehicle_pool); - AddBlockToPool(&_Vehicle_pool); - for (i = 0; i < BLOCKS_FOR_SPECIAL_VEHICLES; i++) { - AddBlockToPool(&_Vehicle_pool); - } + _Vehicle_pool.CleanPool(); + _Vehicle_pool.AddBlockToPool(); ResetVehiclePosHash(); } diff --git a/src/vehicle.h b/src/vehicle.h index 410b66890..bdd646987 100644 --- a/src/vehicle.h +++ b/src/vehicle.h @@ -366,7 +366,7 @@ struct Vehicle : PoolItem<Vehicle, VehicleID, &_Vehicle_pool> { * Get a string 'representation' of the vehicle type. * @return the string representation. */ - virtual const char* GetTypeString() const = 0; + virtual const char* GetTypeString() const { return "base vehicle"; } /** * Marks the vehicles to be redrawn and updates cached variables @@ -417,7 +417,7 @@ struct Vehicle : PoolItem<Vehicle, VehicleID, &_Vehicle_pool> { /** * Calls the tick handler of the vehicle */ - virtual void Tick() = 0; + virtual void Tick() {}; bool IsValid() const { return this->type != VEH_INVALID; } }; |