Changeset - r23967:184d66dba11d
[Not reviewed]
master
0 2 0
glx - 5 years ago 2019-12-17 17:57:53
glx@openttd.org
Codechange: Replace FOR_ALL_STORAGES with range-based for loops
2 files changed with 1 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/newgrf_storage.h
Show inline comments
 
@@ -209,28 +209,25 @@ void AddChangedPersistentStorage(BasePer
 
typedef PersistentStorageArray<int32, 16> OldPersistentStorage;
 

	
 
typedef uint32 PersistentStorageID;
 

	
 
struct PersistentStorage;
 
typedef Pool<PersistentStorage, PersistentStorageID, 1, 0xFF000> PersistentStoragePool;
 

	
 
extern PersistentStoragePool _persistent_storage_pool;
 

	
 
/**
 
 * Class for pooled persistent storage of data.
 
 */
 
struct PersistentStorage : PersistentStorageArray<int32, 256>, PersistentStoragePool::PoolItem<&_persistent_storage_pool> {
 
	/** We don't want GCC to zero our struct! It already is zeroed and has an index! */
 
	PersistentStorage(const uint32 new_grfid, byte feature, TileIndex tile)
 
	{
 
		this->grfid = new_grfid;
 
		this->feature = feature;
 
		this->tile = tile;
 
	}
 
};
 

	
 
assert_compile(cpp_lengthof(OldPersistentStorage, storage) <= cpp_lengthof(PersistentStorage, storage));
 

	
 
#define FOR_ALL_STORAGES_FROM(var, start) FOR_ALL_ITEMS_FROM(PersistentStorage, storage_index, var, start)
 
#define FOR_ALL_STORAGES(var) FOR_ALL_STORAGES_FROM(var, 0)
 

	
 
#endif /* NEWGRF_STORAGE_H */
src/saveload/storage_sl.cpp
Show inline comments
 
@@ -15,38 +15,36 @@
 

	
 
/** Description of the data to save and load in #PersistentStorage. */
 
static const SaveLoad _storage_desc[] = {
 
	 SLE_CONDVAR(PersistentStorage, grfid,    SLE_UINT32,                  SLV_6, SL_MAX_VERSION),
 
	 SLE_CONDARR(PersistentStorage, storage,  SLE_UINT32,  16,           SLV_161, SLV_EXTEND_PERSISTENT_STORAGE),
 
	 SLE_CONDARR(PersistentStorage, storage,  SLE_UINT32, 256,           SLV_EXTEND_PERSISTENT_STORAGE, SL_MAX_VERSION),
 
	 SLE_END()
 
};
 

	
 
/** Load persistent storage data. */
 
static void Load_PSAC()
 
{
 
	int index;
 

	
 
	while ((index = SlIterateArray()) != -1) {
 
		assert(PersistentStorage::CanAllocateItem());
 
		PersistentStorage *ps = new (index) PersistentStorage(0, 0, 0);
 
		SlObject(ps, _storage_desc);
 
	}
 
}
 

	
 
/** Save persistent storage data. */
 
static void Save_PSAC()
 
{
 
	PersistentStorage *ps;
 

	
 
	/* Write the industries */
 
	FOR_ALL_STORAGES(ps) {
 
	for (PersistentStorage *ps : PersistentStorage::Iterate()) {
 
		ps->ClearChanges();
 
		SlSetArrayIndex(ps->index);
 
		SlObject(ps, _storage_desc);
 
	}
 
}
 

	
 
/** Chunk handler for persistent storages. */
 
extern const ChunkHandler _persistent_storage_chunk_handlers[] = {
 
	{ 'PSAC', Save_PSAC, Load_PSAC, nullptr, nullptr, CH_ARRAY | CH_LAST},
 
};
0 comments (0 inline, 0 general)