mirror of https://github.com/OpenTTD/OpenTTD
(svn r6984) Use the pool macros for the RoadStop pool
parent
f51d2a3311
commit
f0836260e8
|
@ -1263,7 +1263,7 @@ static void *IntToReference(uint index, SLRefType rt)
|
||||||
return GetTown(index);
|
return GetTown(index);
|
||||||
}
|
}
|
||||||
case REF_ROADSTOPS: {
|
case REF_ROADSTOPS: {
|
||||||
if (!AddBlockIfNeeded(&_roadstop_pool, index))
|
if (!AddBlockIfNeeded(&_RoadStop_pool, index))
|
||||||
error("RoadStops: failed loading savegame: too many RoadStops");
|
error("RoadStops: failed loading savegame: too many RoadStops");
|
||||||
return GetRoadStop(index);
|
return GetRoadStop(index);
|
||||||
}
|
}
|
||||||
|
|
20
station.h
20
station.h
|
@ -181,23 +181,7 @@ static inline void DeleteStation(Station *st)
|
||||||
|
|
||||||
/* Stuff for ROADSTOPS */
|
/* Stuff for ROADSTOPS */
|
||||||
|
|
||||||
extern MemoryPool _roadstop_pool;
|
DECLARE_POOL(RoadStop, RoadStop, 5, 2000)
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the pointer to the roadstop with index 'index'
|
|
||||||
*/
|
|
||||||
static inline RoadStop *GetRoadStop(uint index)
|
|
||||||
{
|
|
||||||
return (RoadStop*)GetItemFromPool(&_roadstop_pool, index);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current size of the RoadStoptPool
|
|
||||||
*/
|
|
||||||
static inline uint16 GetRoadStopPoolSize(void)
|
|
||||||
{
|
|
||||||
return _roadstop_pool.total_items;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if a RaodStop really exists.
|
* Check if a RaodStop really exists.
|
||||||
|
@ -215,7 +199,7 @@ static inline void DeleteRoadStop(RoadStop *rs)
|
||||||
rs->used = false;
|
rs->used = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define FOR_ALL_ROADSTOPS_FROM(rs, start) for (rs = GetRoadStop(start); rs != NULL; rs = (rs->index + 1 < GetRoadStopPoolSize()) ? GetRoadStop(rs->index + 1) : NULL) if (IsValidRoadStop(rs))
|
#define FOR_ALL_ROADSTOPS_FROM(rs, start) for (rs = GetRoadStop(start); rs != NULL; rs = (rs->index + 1U < GetRoadStopPoolSize()) ? GetRoadStop(rs->index + 1U) : NULL) if (IsValidRoadStop(rs))
|
||||||
#define FOR_ALL_ROADSTOPS(rs) FOR_ALL_ROADSTOPS_FROM(rs, 0)
|
#define FOR_ALL_ROADSTOPS(rs) FOR_ALL_ROADSTOPS_FROM(rs, 0)
|
||||||
|
|
||||||
/* End of stuff for ROADSTOPS */
|
/* End of stuff for ROADSTOPS */
|
||||||
|
|
|
@ -71,11 +71,11 @@ static void RoadStopPoolNewBlock(uint start_item)
|
||||||
|
|
||||||
/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
|
/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
|
||||||
* TODO - This is just a temporary stage, this will be removed. */
|
* TODO - This is just a temporary stage, this will be removed. */
|
||||||
for (rs = GetRoadStop(start_item); rs != NULL; rs = (rs->index + 1 < GetRoadStopPoolSize()) ? GetRoadStop(rs->index + 1) : NULL) rs->index = start_item++;
|
for (rs = GetRoadStop(start_item); rs != NULL; rs = (rs->index + 1U < GetRoadStopPoolSize()) ? GetRoadStop(rs->index + 1U) : NULL) rs->index = start_item++;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFINE_POOL(Station, Station, StationPoolNewBlock, StationPoolCleanBlock)
|
DEFINE_POOL(Station, Station, StationPoolNewBlock, StationPoolCleanBlock)
|
||||||
MemoryPool _roadstop_pool = { "RoadStop", ROADSTOP_POOL_MAX_BLOCKS, ROADSTOP_POOL_BLOCK_SIZE_BITS, sizeof(RoadStop), &RoadStopPoolNewBlock, NULL, 0, 0, NULL };
|
DEFINE_POOL(RoadStop, RoadStop, RoadStopPoolNewBlock, NULL)
|
||||||
|
|
||||||
|
|
||||||
extern void UpdateAirplanesOnNewStation(Station *st);
|
extern void UpdateAirplanesOnNewStation(Station *st);
|
||||||
|
@ -168,7 +168,7 @@ RoadStop *AllocateRoadStop(void)
|
||||||
|
|
||||||
/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
|
/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
|
||||||
* TODO - This is just a temporary stage, this will be removed. */
|
* TODO - This is just a temporary stage, this will be removed. */
|
||||||
for (rs = GetRoadStop(0); rs != NULL; rs = (rs->index + 1 < GetRoadStopPoolSize()) ? GetRoadStop(rs->index + 1) : NULL) {
|
for (rs = GetRoadStop(0); rs != NULL; rs = (rs->index + 1U < GetRoadStopPoolSize()) ? GetRoadStop(rs->index + 1U) : NULL) {
|
||||||
if (!IsValidRoadStop(rs)) {
|
if (!IsValidRoadStop(rs)) {
|
||||||
RoadStopID index = rs->index;
|
RoadStopID index = rs->index;
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ RoadStop *AllocateRoadStop(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if we can add a block to the pool */
|
/* Check if we can add a block to the pool */
|
||||||
if (AddBlockToPool(&_roadstop_pool)) return AllocateRoadStop();
|
if (AddBlockToPool(&_RoadStop_pool)) return AllocateRoadStop();
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -2879,8 +2879,8 @@ void InitializeStations(void)
|
||||||
AddBlockToPool(&_Station_pool);
|
AddBlockToPool(&_Station_pool);
|
||||||
|
|
||||||
/* Clean the roadstop pool and create 1 block in it */
|
/* Clean the roadstop pool and create 1 block in it */
|
||||||
CleanPool(&_roadstop_pool);
|
CleanPool(&_RoadStop_pool);
|
||||||
AddBlockToPool(&_roadstop_pool);
|
AddBlockToPool(&_RoadStop_pool);
|
||||||
|
|
||||||
_station_tick_ctr = 0;
|
_station_tick_ctr = 0;
|
||||||
|
|
||||||
|
@ -3114,7 +3114,7 @@ static void Load_ROADSTOP(void)
|
||||||
while ((index = SlIterateArray()) != -1) {
|
while ((index = SlIterateArray()) != -1) {
|
||||||
RoadStop *rs;
|
RoadStop *rs;
|
||||||
|
|
||||||
if (!AddBlockIfNeeded(&_roadstop_pool, index))
|
if (!AddBlockIfNeeded(&_RoadStop_pool, index))
|
||||||
error("RoadStops: failed loading savegame: too many RoadStops");
|
error("RoadStops: failed loading savegame: too many RoadStops");
|
||||||
|
|
||||||
rs = GetRoadStop(index);
|
rs = GetRoadStop(index);
|
||||||
|
|
Loading…
Reference in New Issue