(svn r10772) -Codechange: also make use of the generic clean and destroy pool callback functions for vehicle.

This commit is contained in:
rubidium 2007-08-03 20:17:26 +00:00
parent bf8ec55db5
commit 9df2e25258
2 changed files with 5 additions and 32 deletions

View File

@ -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();
}

View File

@ -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; }
};