summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-08-03 20:17:26 +0000
committerrubidium <rubidium@openttd.org>2007-08-03 20:17:26 +0000
commit974109446414b91dc80194e6228b27101e61a64f (patch)
tree7067e69c760c84deb2c5ba156afacc8b1ac97873
parent48df8b374c0052bea002c573eff884e04478af03 (diff)
downloadopenttd-974109446414b91dc80194e6228b27101e61a64f.tar.xz
(svn r10772) -Codechange: also make use of the generic clean and destroy pool callback functions for vehicle.
-rw-r--r--src/vehicle.cpp33
-rw-r--r--src/vehicle.h4
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; }
};