Changeset - r6108:580a9fc2a546
[Not reviewed]
master
0 3 0
Darkvater - 17 years ago 2007-02-22 16:16:44
darkvater@openttd.org
(svn r8844) -Revert partly (r8820, r8806): Change AppendToGRFConfigList to add the allocated GRFConfig to its list and not copy it.
3 files changed with 15 insertions and 19 deletions:
0 comments (0 inline, 0 general)
src/newgrf_config.cpp
Show inline comments
 
@@ -178,13 +178,13 @@ void AppendStaticGRFConfigs(GRFConfig **
 
}
 

	
 
/** Appends an element to a list of GRFs
 
 * @param dst the head of the list to add to
 
 * @param el the element that is being added (as a copy) */
 
void AppendToGRFConfigList(GRFConfig **dst, const GRFConfig *el)
 
 * @param dst the head of the list to add to */
 
void AppendToGRFConfigList(GRFConfig **dst, GRFConfig *el)
 
{
 
	GRFConfig **tail = dst;
 
	while (*tail != NULL) tail = &(*tail)->next;
 
	CopyGRFConfigList(tail, el);
 
	*tail = el;
 

	
 
	RemoveDuplicatesFromGRFConfigList(*dst);
 
}
 

	
 
@@ -451,10 +451,9 @@ static const SaveLoad _grfconfig_desc[] 
 

	
 
static void Save_NGRF(void)
 
{
 
	GRFConfig *c;
 
	int index = 0;
 

	
 
	for (c = _grfconfig; c != NULL; c = c->next) {
 
	for (GRFConfig *c = _grfconfig; c != NULL; c = c->next) {
 
		if (HASBIT(c->flags, GCF_STATIC)) continue;
 
		SlSetArrayIndex(index++);
 
		SlObject(c, _grfconfig_desc);
 
@@ -464,12 +463,11 @@ static void Save_NGRF(void)
 

	
 
static void Load_NGRF(void)
 
{
 
	GRFConfig c;
 
	memset(&c, 0, sizeof(GRFConfig));
 

	
 
	ClearGRFConfigList(&_grfconfig);
 
	while (SlIterateArray() != -1) {
 
		SlObject(&c, _grfconfig_desc);
 
		AppendToGRFConfigList(&_grfconfig, &c);
 
		GRFConfig *c = CallocT<GRFConfig>(1);
 
		SlObject(c, _grfconfig_desc);
 
		AppendToGRFConfigList(&_grfconfig, c);
 
	}
 

	
 
	/* Append static NewGRF configuration */
src/newgrf_config.h
Show inline comments
 
@@ -50,7 +50,7 @@ const GRFConfig *FindGRFConfig(uint32 gr
 
GRFConfig *GetGRFConfig(uint32 grfid);
 
GRFConfig **CopyGRFConfigList(GRFConfig **dst, const GRFConfig *src);
 
void AppendStaticGRFConfigs(GRFConfig **dst);
 
void AppendToGRFConfigList(GRFConfig **dst, const GRFConfig *el);
 
void AppendToGRFConfigList(GRFConfig **dst, GRFConfig *el);
 
void ClearGRFConfig(GRFConfig **config);
 
void ClearGRFConfigList(GRFConfig **config);
 
void ResetGRFConfig(bool defaults);
src/oldloader.cpp
Show inline comments
 
@@ -1367,18 +1367,16 @@ static bool LoadTTDPatchExtraChunks(Load
 
				ReadUint32(ls); ReadByte(ls); len -= 5;
 

	
 
				ClearGRFConfigList(&_grfconfig);
 
				GRFConfig c;
 
				memset(&c, 0, sizeof(GRFConfig));
 

	
 
				while (len != 0) {
 
					uint32 grfid = ReadUint32(ls);
 

	
 
					if (ReadByte(ls) == 1) {
 
						c.grfid = grfid;
 
						c.filename = "TTDP game, no information";
 
						GRFConfig *c = CallocT<GRFConfig>(1);
 
						c->grfid = grfid;
 
						c->filename = strdup("TTDP game, no information");
 

	
 
						AppendToGRFConfigList(&_grfconfig, &c);
 
						DEBUG(oldloader, 3, "TTDPatch game using GRF file with GRFID %0X", BSWAP32(c.grfid));
 
						AppendToGRFConfigList(&_grfconfig, c);
 
						DEBUG(oldloader, 3, "TTDPatch game using GRF file with GRFID %0X", BSWAP32(c->grfid));
 
					}
 
					len -= 5;
 
				};
0 comments (0 inline, 0 general)